搜索
wlmmmm
这个作者很懒,什么都没留下…
展开
-
poj 3984 迷宫问题 —— 典型搜索--DFS递归
四个方向,每次选择一个方向走,不通时走下一个方向,如果四个方向都不能走时,则退一格。依题意,可用DFS递归实现。 #include #include int n,m,i,j,k,flag,count; int data[5][5],vis[5][5]; int dir[4][2]={{1,0},{0,1},{-1,0},{0,-1}}; struct Path { int a,b; }原创 2013-09-12 17:05:06 · 1209 阅读 · 0 评论 -
poj 2386 Lake Counting——BFS(队列)
题意:要数出池塘的数量,‘W’表示水,‘.’表示陆地。 思路:2个for循环遍历一遍,每一次选择是 ‘W’ 且没被访问过的进行BFS搜索,搜索时可以走8个方向。 int dir[8][2]={{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1}}; 源代码: #include #include int n,m,i,j,k原创 2013-09-12 17:22:37 · 794 阅读 · 0 评论 -
poj 1564 Sum It Up -- DFS 递归
题意:给一个数 t ,以及 n 个数,求 n 个数中的几个数加起来的和为 t 的情况有多少种。 注意:题目要求相同的组合方式不能出现2次,即 “3 4 1 1 1 1 ” 的结果为:“1+1+1”。 思路:一个 for 循环遍历一遍,每个 i 表示以当前数为起点开始一次DFS递归,当所遍历的和为 t 时,输出该组合方式,如果大于 t 则返回,小于则往下递归。以二维数组保存已经输出过的数据,原创 2013-09-15 17:38:42 · 798 阅读 · 0 评论