摘要: 最近这几个星期一直在做搜索的题,关于搜索比刚是学的时候有了更深刻的了解,普通的对于我来说已经很好解决,不过碰到难的像是双向BFS或是关于特殊状态的存储这一类的题还是不太会做,自己对此理解的也不够深刻,还是很仰慕那些神牛级的人物啊!说说BFS吧,做题是肯定是用到队列啦,BFS类似于层次遍历是一层一层向外扩展,通常用来求最小的步数,最短距离神马的。借助于队列可将每一步扩展的数值保存在队列里,再出队列判断是否满足要求,如果满足要求就停止打印步数,如果不满足则继续遍历想外层扩展,知道找到位置才停下。最后再用while循环时不要忘了一定要清空队列,应为队列里可能保存着上次遍历留下的值;有时也会... 阅读全文
posted @ 2012-03-18 11:28 zhongya 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 思路很简单,简单的素数环,相邻位必定是一奇一偶,当n为奇数时就不必在判断了,输出肯定木有素数环(剪枝的重要判定条件),因为n为奇数时奇数的数量一定大于偶数的数量,最后一定存在两个奇数相连(雀巢原理)。 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 #include<math.h> 5 6 int A[20],visit[20],ok,n; 7 int isp[40]={0,1,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0 阅读全文
posted @ 2012-03-18 08:25 zhongya 阅读(414) 评论(0) 推荐(1) 编辑