hdu 2782 DFS
2013-07-21 12:48
183 查看
时间4s~~~爆搜~~
#include <cstring> #include <cstdio> using namespace std; int map[700][700]; int vis[700][700]; int ansx,ansy; int ansd,anssum; int n,m; int res=0; int xx[4]={0,-1,1,0}; int yy[4]={1,0,0,-1}; void dfs(int x,int y,int ans,int pre) { if(pre==-1) { int i; for(i=0;i<4;i++) { int nx=x+xx[i]; int ny=y+yy[i]; if(nx<0||nx>=n||ny<0||ny>=m) continue; if(vis[nx][ny]) continue; vis[nx][ny]=1; dfs(nx,ny,ans+1,i); vis[nx][ny]=0; if(res>anssum) { ansx=x; ansy=y; ansd=i; anssum=res; } } return ; } int i; int flag=1; int nx=x+xx[pre]; int ny=y+yy[pre]; if(nx>=0&&nx<n&&ny>=0&&ny<m&&!vis[nx][ny]) { vis[nx][ny]=1; dfs(nx,ny,ans+1,pre); vis[nx][ny]=0; flag=0; } else { for(i=0;i<4;i++) { if(i==pre) continue; nx=x+xx[i]; ny=y+yy[i]; if(nx<0||nx>=n||ny<0||ny>=m) continue; if(vis[nx][ny]) continue; vis[nx][ny]=1; dfs(nx,ny,ans+1,i); vis[nx][ny]=0; flag=0; } } if(flag) { if(res<ans) res=ans; } } int main() { int cas=0; while(scanf("%d%d",&n,&m)!=EOF) { cas++; if(n==0&&m==0) break; int r; scanf("%d",&r); int i; memset(vis,0,sizeof(vis)); for(i=0;i<r;i++) { int x,y; scanf("%d%d",&x,&y); vis[x][y]=1; } int j; anssum=-1; res=0; for(i=0;i<n;i++) { for(j=0;j<m;j++) { if(!vis[i][j]) { vis[i][j]=1; dfs(i,j,1,-1); vis[i][j]=0; } } } printf("Case %d: %d %d %d ",cas,anssum,ansx,ansy); if(ansd==0) printf("E\n"); else if(ansd==1) printf("N\n"); else if(ansd==2) printf("S\n"); else if(ansd==3) printf("W\n"); } }
相关文章推荐
- HDU 2782 The Worm Turns 【dfs深搜】
- hdu 2782 dfs(限定)
- HDU 2782 The Worm Turns (DFS)
- HDU 2782 The Worm Turns (DFS)
- HDU 2782 The Worm Turns 暴力深搜DFS
- HDU 2782 The Worm Turns (暴力dfs)
- hdu 1010 Tempter of the Bone(dfs暴力)
- hdu 5416 CRB and Tree (DFS)
- hdu 1175 连连看(DFS)
- HDU 5416 CRB and Tree(dfs 异或逆运算)
- hdu 1312:Red and Black(DFS搜索,入门题)
- leetcode N-Queens/N-Queens II, backtracking, hdu 2553 count N-Queens, dfs
- HDU 1501 Zipper 【DFS+剪枝】
- HDU 4707 Pet(邻接表dfs)
- (step4.3.9)hdu 1584(蜘蛛牌——DFS)
- HDU 5723(mst+dfs)
- Hdu1312 Red and Black 【简单dfs】
- HDU 3721 - Building Roads(DFS`树的直径)
- hdu 1427 速算24点(java,DFS,全排列)
- HDU 5379 (dfs)