题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1175
题意简明,连连看,判断两个位置能不能消去。“不好意思,由于我以前没有玩过连连看,咨询了同学的意见,连线不能从外面绕过去的,但事实上这是错的。现在已经酿成大祸,就只能将错就错了,连线不能从外围绕过。”——这句话真搞笑………令解题者少作一步处理,还是不错的(否则需要在棋盘外围加一圈0)。
很快写了个DFS的程序,提交上去,RE了,提示栈溢出。于是我习惯性地认为一定是DFS所用的递归函数导致栈溢出,于是改写,用STL的stack模板模拟递归。提交,继续栈溢出……
又不淡定了,难道stack中的元素也是在栈上的,改用vector?但是至多3000个节点怎么可能溢出……
忽然意识到问题所在了,我把1000*1000的int数组放在main函数里,一行声明代码就吃了4M栈空间,当然栈溢出了,只不过在我的OS X上正常运行……估计是OS X的栈空间较大。
激动地把数组移驾到全局,提交,TLE……
看同样用DFS的解题报告,原来是我没想到更牛逼的剪枝——譬如移动到A点时,已拐了2次——记录表明有个家伙在A点时才拐了1次,最终却没能到达终点,那么可以直接结束这条支线。
多么牛逼的剪枝啊!不过最后没有用这个方法,因为我不搜索了——依次判断直线到达,拐一次到达,拐两次到达。
直线到达最容易——依次判断直线上各点是否为0。
拐一次,可以得出两条轨迹,组成一个矩形……
拐两次,先求出两条平行线,然后作两平行线的垂线……
1w ms的限时,g++下62ms AC,看来不用搜索的效果还是不错的。
吐槽一下自己的代码,太长太面向对象,解题的代码没必要这样;但代码的事,我有点强迫症……
为了抽象不同方向上的操作,把坐标x, y表示为长度为2的数组,感觉还是有点用的。
吐槽一下自己以前在vim中没把tab设置成空格,造成博客上很多代码排版不齐,这次应该没问题。
这次加注释,中文注释……
分享到:
相关推荐
在本项目中,"C#可视化连连看实现 广度优先,动态规划,回溯" 是一个使用C#编程语言实现的连连看游戏,它融合了三种算法:广度优先搜索(BFS)、动态规划(DP)和回溯法。这些算法在解决复杂问题时非常有效,尤其是...
【标题】:“HDOJ题目分类 HDOJ题目分类” HDOJ,全称为Happy DingO Online Judge,是一个在线编程竞赛平台,它为参赛者提供了大量编程题目进行练习和比赛,旨在提升编程技能和算法理解。HDOJ的题目分类是帮助用户...
【标题】"hdoj.rar_Dividing HDOJ_OJ 1082_hdoj 10_杭电oj_杭电oj1000" 涉及的知识点主要围绕着“杭电在线判题系统(HDOJ)”以及其中的题目1082和10系列题目。HDOJ是杭州电子科技大学主办的一个在线编程竞赛平台,...
【标题】"HDOJ 80题 Java"是一份专为Java程序员设计的在线编程挑战集合,源自杭州电子科技大学(HDOJ)的在线评测系统。这些题目旨在帮助Java开发者提升算法理解与编程能力,同时也为那些习惯于C++但希望在Java环境...
hdoj1001标程
ACM ICPC HDOJ1002
ACM ICPC HDOJ1001
“hdoj杭电1000-2000部分解题报告”这个标题指的是一个关于杭州电子科技大学(简称杭电)在线编程竞赛平台(HDU Online Judge,简称HDOJ)上的题目解题报告。这份报告涵盖了编号从1000到2000的题目,这是一段相当大...
《HDOJ离线版:探索编程竞赛的智慧宝库》 HDOJ,全称为“杭州电子科技大学在线评测系统”(Hangzhou Dianzi University Online Judge),是中国早期的编程竞赛平台之一,深受广大编程爱好者和在校学生的喜爱。HDOJ...
hdoj1004,解题代码,答案代码,欢迎下载
ACM ICPC HDOJ1003
ACM ICPC HDOJ1008
【OJ.tar.gz_HDOJ _OJ源码_oj】是一个包含编程竞赛平台HDOJ(Happy Ding Octopus Judge)部分源代码的压缩文件。这个压缩包的主要目的是供学习和研究使用,尤其是针对50至60题目的解题算法和系统实现。通过分析这些...
"hdoj--acm题目,有注释" 本资源提供了多个 ACM 题目的解决方案,代码都带有注释,非常适合初学者学习。下面是对每个题目的知识点总结: 2000:本题目要求输入三个字符,输出按照从小到大排序的结果。本代码使用了...
【标题】"HDOJ.rar_HD_HDOJ" 是一个与HDU(杭州电子科技大学)在线判题系统HDOJ相关的压缩包文件,其中包含了大量编程题目的源代码。 【描述】提到,这个压缩包包含了几百道HDOJ题目的源代码,这意味着它是一个宝贵...
根据给定的文件信息,我们可以总结出以下关于“hdoj2066最短路径”的相关知识点: ## hdoj2066最短路径概述 ### 标题解析:“hdoj2066最短路” - **hdoj**:High Density Online Judge(高密度在线评测系统),是...
一些HDOJ上的DP题目的小总结,但愿能帮到那些想专攻DP的人吧
ACM ICPC HDOJ1000
【标题解析】:“hdoj 2013 多校训练4标程+解题报告”这个标题表明,这是一个关于2013年Happy Dream Online Judge(简称hdoj)组织的多校联合编程训练的资料。"4标程"意味着包含了四道题目(或者可能是四个阶段)的...
### hdoj1002——大整数相加 #### 题目背景与目的 本题目来源于杭州电子科技大学的在线评测系统(HDOJ),编号为1002的大整数相加问题。该题目主要考察的是编程者对于大整数处理的基本技巧以及对数组、循环等基础...