BFS是从起点开始,对每一步的同一层分别加入队列中,进行下一层的搜索判断,直到搜到目标为止。。
细节注意:
1,临界问题,定义数组后,对于下标m,0可以使用,而m是不可使用的。即判断时应为:
if (x < 0 || x >= m)
此处若>=写成>则会造成一次runtimr error;
2,坐标处理:为使代码可视化,可以先定义两个数组,例如每次只能移动一格,有:
int mx[4] = {0, 0, -1, 1};
int my[4] = {1, -1, 0, 0};
然后用一个for循环依次对坐标赋值即可;
3,坐标数据处理:一般坐标会出现负值,但坐标一般会用到二维数组,下标是非负的。故应先将坐标处理成非负,但一定要记得每次对坐标都要处理。
另外,一般需要对坐标进行处理的话会使用结构体分别对x和y进行赋值,而要对该坐标进行直接寻址的话就要用到二维数组;,
最后讲下该题的处理思路:
为代码可视化,这里使用三个函数,main, BFS, bool update;
在main中调用bfs中再调用update对每下一次的坐标进行判断,是否加入该队列。
分享到:
相关推荐
北大POJ1426-Find The Multiple【BFS+同余模】 解题报告+AC代码
北大POJ3026-Borg Maze【BFS+Prim】 解题报告+AC代码
POJ各题算法分类和题目推荐 ACM必看 POJ各题算法分类和题目推荐 ACM必看 POJ各题算法分类和题目推荐 ACM必看
POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类
poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题...
POJ第1861题源码 POJ第1861题源码 POJ第1861题源码
POJ 3131 双向BFS解立体八数码问题
poj分类poj分类poj分类poj分类
北大POJ1159-Palindrome 解题报告+AC代码
poj 3414解题报告poj 3414解题报告poj 3414解题报告poj 3414解题报告
poj 1012解题报告poj 1012解题报告poj 1012解题报告poj 1012解题报告
C语言 poj npu 西工大 C语言Poj答案全完整打包,给有需要的朋友
poj 2329解题报告poj 2329解题报告poj 2329解题报告poj 2329解题报告
poj 1659解题报告poj 1659解题报告poj 1659解题报告poj 1659解题报告
POJ1503解答 POJ1503解答,正确答案(已通过POJ)
POJ1048,加强版的约瑟夫问题 难度中等
北大POJ2002-Squares 解题报告+AC代码
POJ1083的代码,POJ1083的代码,POJ1083的代码
想看看自己的编程能力到底怎么样,很多人都回去做一做POJ的题目吧,在这里你不妨可以先看看它的题目分析。
poj 百练 题目分类 poj 百练 题目分类