
BFS和DFS
文章平均质量分 52
Silent-Jy
生活是坚持出来的。
展开
-
BCLOJ-1530:迷宫超级简化版
描述 这是一道很简单的迷宫简化版:Kivi迷失在一个神秘的森林里,只有越过一些障碍,他才能逃出去~为了简化问题,森林可以简化为一个矩阵,矩阵里的元素只有0和1两个状态,0表示可以越过,1则表示有障碍,无法通过.Kivi一开始处在矩阵的(0,0)的位置,即第一行第一列的位置,而出口在最后一行最后一列的位置(测试数据保证初始位置和出口都是可以通行的,即为状态0).现在的原创 2013-01-09 23:00:59 · 582 阅读 · 0 评论 -
HDU-1711:Sum It Up
/*DFS,这道题主要是去掉重复的等式,网上看了大神的方法- -,说是用叶子来判重- -。表示看不懂,回头再去理解,土方法,全部找出来再判断*/#include#include#include#include#include#define N 14using namespace std;bool Cmp(const int &a,const int &b){ return a原创 2013-01-17 18:42:19 · 566 阅读 · 0 评论 -
HDU-1253:胜利大逃亡
/*三维空间的BFS ,下面的程序只能勉强不超时。- -!*/#include#include#include#includeusing namespace std;#define N 55int mp[N][N][N];int dir[6][3]={{0,0,1},{0,0,-1},{1,0,0},{0,1,0},{-1,0,0},{0,-1,0}};int a,b,c,t;原创 2013-01-17 16:45:32 · 555 阅读 · 0 评论 -
HDU-1072:Nightmare
/*这道题的BFS中路径是可重复的,但有几个点不同,在重置时间那几个点上。 用BFS走过的路径是最短的,在到了重置时间点上,如果回过头来再走也不使时间增加的, 反而会增加出去的时间这样把重置时间的那几个点去掉后,由于时间是有限的。故可以再 有限步内结束。即避免了重复路径中不标志路径的死循环问题*/#include#includeconst int N = 10;using name原创 2013-01-15 11:02:49 · 531 阅读 · 0 评论 -
NYOJ-92:图像有用区域
/*BFS,开始做的时候一直在小心地处理着长和宽- -,做完提交然后一直WA。 没想到开下面数组的时候长和宽还是反了。*/#include#includeusing namespace std;const int W = 1500;const int H = 1000;int mp[H][W]; //之前写成mp[W][H]一直WA = =!struct Node{ i原创 2013-01-15 14:40:56 · 1157 阅读 · 0 评论 -
NYOJ-27:水池数目
#include#includeconst int N=100;using namespace std;int n,m;int mp[N][N];int dir[4][2] = {{-1,0},{0,1},{1,0},{0,-1}};void dfs(int si,int sj){ mp[si][sj] = 0; //这道题没有必要回溯,直接更改就可以了 int di,i,j;原创 2013-01-15 11:52:26 · 1193 阅读 · 0 评论 -
HDU-1242:Rescue
/*代码非常的乱- -! 几经修改- -,终于AC了*//*逆序开始搜索,因为有可能有几个求援朋友,最先找到的则为最近的*/#include#include#include#includeusing namespace std;const int N=205;char mp[N][N];int vis[N][N]; //用于判断有没走过int dir[4][2] = {{-1,原创 2013-01-14 23:02:30 · 444 阅读 · 0 评论 -
HDU-1241:Oil Deposits
//DFS#include#include#define N 105char mp[N][N];int vis[N][N];int m,n,cnt;int dir[8][2] = {{-1,-1},{-1,0},{-1,1}, //八个方向 {0,-1},{0,1}, {1,-1},{1,0},{1,1}};void DFS(int x,int y){ v原创 2013-01-14 20:29:44 · 501 阅读 · 0 评论 -
ZSTU-1826:Square
/*DFS*/#include#include#include#define N 24using namespace std;int st[N],cnt,n,avg;int vis[N],flag;bool Cmp(const int &a,const int &b){ return a>b;}void DFS(int cnt,int len,int c){ if (原创 2013-01-14 17:44:42 · 495 阅读 · 0 评论 -
ZSTU-2331:Knight Moves
//BFS#include#include#define MAXN 100000#define N 305using namespace std;int mp[N][N];int dir[8][2] = {{-2,1},{-1,2},{1,-2},{2,1},{2,-1},{1,2},{-1,-2},{-2,-1}};//马走的方向typedef struct Que{ int原创 2013-01-14 16:32:10 · 546 阅读 · 0 评论 -
NYOJ-58:最少步数
/*BFS*/#include#include#include#includeusing namespace std;#define N 9typedef struct{ int dir,i,j,cnt;}Node;int dir[4][2] = {{-1,0},{0,1},{1,0},{0,-1}};int si,sj,ei,ej;int mp[N][N] = {原创 2013-02-04 14:44:09 · 1243 阅读 · 0 评论