标签:des style blog http color java os strong
4 4 5 S.X. ..X. ..XD .... 3 4 5 S.X. ..X. ...D 0 0 0
NO YES下面是未剪枝的,可作为模板学习DFS,原理容易理解,难的是代码的实现:#include<stdio.h> #include<iostream> #include<math.h> #include<string.h> using namespace std; int n,m,t; int dir[4][2]={{0,-1},{0,1},{1,0},{-1,0}}; char map[9][9]; int sx,sy; int ex,ey; bool escape; void dfs(int x,int y,int ant) { if(x==ex&&y==ey&&ant==t) { escape=true; return ; } for(int i=0;i<4;i++) { int xi=x+dir[i][0]; int yi=y+dir[i][1]; if(xi>=0&&xi<n&&yi>=0&&yi<m&&map[xi][yi]!='X') { map[xi][yi]='X'; ant++; dfs(xi,yi,ant); ant--; if(escape==true) return ; map[xi][yi]='.'; } } return ; } int main() { while(scanf("%d%d%d",&n,&m,&t)!=EOF&&n) { escape=false; // memset(map,0,sizeof(map)); for(int i=0;i<n;i++) { scanf("%s",map[i]); for(int j=0;j<m;j++) { if(map[i][j]=='S') { sx=i; sy=j; } if(map[i][j]=='D') { ex=i; ey=j; } } } map[sx][sy] = 'X'; dfs(sx,sy,0); if(escape==true) { printf("YES\n"); } else printf("NO\n"); } return 0; }剪完枝后完美AC:<pre name="code" class="html">#include<stdio.h> #include<iostream> #include<math.h> #include<string.h> #include<stdlib.h> using namespace std; int n,m,t; int dir[4][2]={{0,-1},{0,1},{1,0},{-1,0}}; char map[9][9]; int sx,sy; int ex,ey; bool escape; void dfs(int x,int y,int ant) { int temp; if(x==ex&&y==ey&&ant==t) { escape=true; return ; } // temp=(t-ant)-abs(sx-ex)-abs(sy-ey); // if(temp<0||temp&1) return; if(((t-ant)+abs(x-ex)+abs(y-ey))%2!=0) //关键剪枝 return ; for(int i=0;i<4;i++) { int xi=x+dir[i][0]; int yi=y+dir[i][1]; if(xi>=0&&xi<n&&yi>=0&&yi<m&&map[xi][yi]!='X') { map[xi][yi]='X'; ant++; dfs(xi,yi,ant); ant--; if(escape==true) return ; map[xi][yi]='.'; } } return ; } int main() { while(scanf("%d%d%d",&n,&m,&t)!=EOF&&n) { escape=false; // memset(map,0,sizeof(map)); for(int i=0;i<n;i++) { scanf("%s",map[i]); for(int j=0;j<m;j++) { if(map[i][j]=='S') { sx=i; sy=j; } if(map[i][j]=='D') { ex=i; ey=j; } } } map[sx][sy] = 'X'; dfs(sx,sy,0); if(escape==true) { printf("YES\n"); } else printf("NO\n"); } return 0; }
hdu1010-Tempter of the Bone DFS深搜入门题+奇偶剪枝,布布扣,bubuko.com
hdu1010-Tempter of the Bone DFS深搜入门题+奇偶剪枝
标签:des style blog http color java os strong
原文地址:http://blog.csdn.net/u013067957/article/details/38315879