搜索
zhang360896270
任何语言中的任何语法特性的诞生都不是随意而为的,来源于真实世界的需求驱动。
展开
-
hdu1728 逃离迷宫(bfs)
<br />这是本人写过的最纠结的一次bfs,一看到题目就觉得比较简单,是非常基础的广搜,但是用stl写出来交上去居然WA,修改细节后一直wa,T_T,写代码能力亟须加强,有算法无代码实在是太悲剧了。。。。而且有很多细节需要注意,参考网上程序得出AC代码如下:<br /><br />#include<iostream><br />#include<queue><br />using namespace std;<br />struct Node<br />{<br /> int x, y; <原创 2011-02-10 01:49:00 · 1093 阅读 · 0 评论 -
hdu1180 诡异的楼梯
<br />这道题目我第二次写,根据当前步数判断楼梯的朝向,但是一直没有AC,后来想到广搜期间的点优先级不同,因为等待楼梯转向和直接过楼梯是同时入队的,因此普通队列不能区分则会导致错误,故要用到优先队列(之前AC的代码没有用优先队列,不知道是怎么办到的)<br />附代码如下:<br /><br />#include <iostream><br />#include <cstring><br />#include <cstdio><br />#include <queue><br />using names原创 2011-04-30 20:43:00 · 1044 阅读 · 0 评论 -
hdu1732 Pushbox
果断很无语,之前数组开小了一直WA,郁闷死我了。。。表示还是要开8维数组判重,附AC代码: #include #include using namespace std;const int size = 9 ;struct Node{ int x, y; int Box[3][2];//记录三个箱子的位置 int step; char map原创 2011-06-17 21:20:00 · 1015 阅读 · 0 评论 -
hdu1254 推箱子
此题纠结了很久,有个细节一定要注意,就是对于箱子要开三维数组做标记,因为从多个方向到达同一点他们的步数可能不一样,如果这个题目有WA的,记得检查一下这里,在此果断感谢Starry☆Sky 帮助我看代码。。 # include # include using namespace std;struct Node{ int x, y; int px, py;原创 2011-06-07 12:06:00 · 716 阅读 · 0 评论 -
XiangTan Univ. invitational Contest 2010 I,ROBOT
<br />广搜,之前用四个方向不标记的广搜方法错了。。记得标记四个方向,这题很纠结。。。<br /># include<iostream><br />#include <queue><br />using namespace std;<br />struct Node<br />{<br /> int x, y;<br /> int dir;<br /> int step;<br /> int judge[4];<br /> bool opera原创 2011-05-18 20:29:00 · 805 阅读 · 0 评论 -
hdu1372 Knight Moves
<br />广搜水题,此题可以采用双向广搜进行优化,即从起点和终点两个位置同时开始进行bfs,如果相遇即可输出步数,这样可以节省一半时间,优化后程序跑了15ms,比起0ms秒过的牛人还是差老大一截。。。。ORZ,无限膜拜原创 2011-02-19 16:18:00 · 491 阅读 · 0 评论 -
hdu 1258 Sum It Up
<br />深搜题,从第一个小于n的数字开始向下深搜,如果sum>n则跳过尝试下一个数,如果sum==n则打印,写了代码之后一直wa,百度解题报告后有个地方没看太懂,暂时先贴参考后的AC代码出来:<br />#include<iostream><br />#include <queue><br />using namespace std;<br />int a[13], add[13], n, k, visited[13];<br />int len;<br />int check;<br />void d原创 2011-02-19 16:24:00 · 814 阅读 · 0 评论 -
hdu1241 Oil Deposits
<br />广搜题,题意为找到图中油田有多少块(相邻油田算入一块)。。。多次广搜,如果碰到'@'则置当前'@'为'*'同时counter++,然后从此点开始一次广搜,期间遇到'@'则立刻置为'*',重复进行直到图中所有点全部遍历完毕。。。。整体算法不难。。。写此解题报告纪念一下没有情人的情人节。。。^_^原创 2011-02-14 17:37:00 · 836 阅读 · 0 评论 -
hdu1429 胜利大逃亡(续)
让我初识位压缩的一道BFS题,之前采用结构中增加char类型的key[26],然后采用数组映射实现对钥匙的存储,交上去悲剧地MLE了,然后在YHL大牛的博客上发现了位压缩这一好东东,现在和大家分享一下:用二进制来表示手头的钥匙有哪些,100表示有第三把钥匙,111表示有第三、二、一把,搜索下一点时,如果该点为钥匙点,则可采用|运算来模拟拾取,显然0001 | 1000 = 1001,同理,当为相应的门时采用&运算来模拟开启,例如1101 & 0001 = 0001(即可以打开'A'门),附AC代码如下:#原创 2011-02-10 22:17:00 · 2327 阅读 · 0 评论 -
hdu1242 Rscue && hdu 1253胜利大逃亡
<br /> 广搜!又是广搜!仍然悲剧的广搜!!。hdu1242因为数据中天使不止一个朋友,所以应该以天使姐姐的位置为起点,每个朋友为终点进行搜索,这样就豁然开朗了,这里强调一下逆向思维的重要性,唉。。。。hdu1253 题目不难,注意使用scanf、printf输入输出,尤其重要的是剪枝,再次膜拜剪枝帝。如果地图终点为1、最短路程大于给定时间、最短路程大于可走路程这几种情况就是很明显的悲剧,有了剪枝,此题可秒。今天让我十分郁闷,我的脑残代码就不贴出来贻笑大方了。。。。。ACM加油!!!原创 2011-02-12 00:10:00 · 1211 阅读 · 0 评论 -
hdu1175连连看
一道类似于1728逃离迷宫的广搜题,同样是在结构中增加方向(dir)、转弯数(turn)两个变量,话不多说原创 2011-02-10 17:52:00 · 506 阅读 · 0 评论 -
hdu1072 Nightmare
<br />下午写了三道广搜,大同小异,一道涉及位压缩,表示不懂所以WA了,唉,三个都没能秒过,细微的错误太多T_T。。。悲剧,还是算法实现和写代码能力太差,失败!!以后要再加强锻炼了,昨天和Y大牛聊天到很晚,对他的言辞深有感触,特此谢谢Y大牛的教诲^_^。附此题AC代码如下:<br /># include<iostream><br /># include<queue><br />using namespace std;<br />struct Node<br />{<br /> int x,原创 2011-02-10 17:57:00 · 756 阅读 · 0 评论 -
hdu3004 The Chess
一道广搜题。。用六维hash判重即可,要注意一下马的别脚和炮的隔山打牛。。。稍微细心点敲就应该不会错。。。随后附上部分有针对性的生成数据,仅供参考(答案自己去算)附代码如下# include # include using namespace std;cons原创 2011-08-21 10:23:25 · 9636 阅读 · 0 评论