hdu1010 Tempter of the Bone (DFS)
2013-03-28 19:56
417 查看
加入奇偶剪枝和最短路剪枝后仍然无限TLE..啊啊啊
求大神解惑 ORZ
求大神解惑 ORZ
#include<iostream> #define M 8 #define N 8 #define T 50 #define EB 0 #define B 1 #define D 2 #define K 4 char map [M]; int n,m,t; int si,sj; int ei,ej; int nx; char tm; int move[K][2]={{-1,0},{1,0},{0,1},{0,-1}}; bool dfs(int x,int y,int step); bool DFS() { //char tmap [M]; //memcpy(tmap,map,sizeof(map)); map[si][sj]='X'; return dfs(si,sj,-1); } bool dfs(int x,int y,int step) { step++; // t--; if((t-step)<0){ return false; } int r=abs(ej-y)+abs(ei-x)-(t-step); if(r>0||(abs(r)&1!=0)){ return false; } if(map[x][y]=='D'){ if(step<t){ return false; }else if(step==t){ return true; } } int nx,ny; bool res; for(int i=0;i!=K;i++){ nx=x+move[i][1]; ny=y+move[i][0]; if(nx<=m&&nx>=0&&ny<=n&&ny>=0&&map[nx][ny]!='X'){ map[x][y]='X'; res=dfs(nx,ny ,step); if(res==true){ return res; } map[x][y]='.'; } } return false; } int main() { while (std::cin>>n>>m>>t&&(m!=0||n!=0||t!=0)) { for(int i=0;i!=n;i++){ for(int j=0;j!=m;j++){ std::cin>>tm; if(tm=='S'){ si=i,sj=j; }else if(tm=='D'){ ei=i,ej=j; }else if(tm=='X'){ nx++; } map[i][j]=tm; } } if((n*m-nx)<t){ std::cout<<"NO"<<std::endl; }else{ //.. t++; if(DFS()){ std::cout<<"YES"<<std::endl; }else{ std::cout<<"NO"<<std::endl; } } nx=0; memset(map,0,sizeof(map)); } }
相关文章推荐
- hdu1010 Tempter of the Bone(dfs)
- HDU1010:Tempter of the Bone(DFS)
- hdu1010 Tempter of the Bone(dfs) java
- HDU1010 Tempter of the Bone (DFS & 奇偶剪枝)
- hdu1010 Tempter of the Bone(dfs+奇偶剪枝)
- hdu1010 Tempter of the Bone(dfs)
- HDU1010 Tempter of the Bone(搜索,dfs)
- HDU1010 Tempter of the Bone (DFS)
- hdu1010 Tempter of the Bone(dfs+奇偶剪枝)
- HDU1010 Tempter of the Bone (DFS入门)
- HDU1010:Tempter of the Bone(DFS)
- HDU1010:Tempter of the Bone(DFS)
- ZOJ 2110 Tempter of the Bone(条件迷宫DFS,HDU1010)
- HDU1010-Tempter of the Bone(DFS模板,例题)
- hdu1010 Tempter of the Bone(DFS)
- HDU1010_Tempter of the Bone(DFS+奇偶剪枝+回溯)
- Tempter of the Bone(hdu1010,dfs)
- HDU1010 Tempter of the Bone 【DFS】+【剪枝】
- HDU1010 Tempter of the Bone DFS
- hdu1010 Tempter of the Bone(DFS,剪枝,递归,回溯)