HDU 4740 The Donkey of Gui Zhou
2013-09-16 07:50
387 查看
The Donkey of Gui Zhou
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 308 Accepted Submission(s): 118
[align=left]Problem Description[/align]
There was no donkey in the province of Gui Zhou, China. A trouble maker shipped one and put it in the forest which could be considered as an N×N grid. The coordinates of the up-left cell is (0,0) , the down-right cell is (N-1,N-1) and the cell below the up-left cell is (1,0)..... A 4×4 grid is shown below:
#include<iostream> #include<cstdio> #include<cstring> #define UP 3 #define DOWN 1 #define LEFT 2 #define RIGHT 0 using namespace std; class POINT { public: int x; int y; bool operator != (const POINT &p) const { if(x==p.x&&y==p.y) return false; return true; } }; int n; int donkey_dir,tiger_dir; bool donkey_end,tiger_end; bool donkey_map[1010][1010],tiger_map[1010][1010]; POINT donkey_current,tiger_current; int main() { while(scanf("%d",&n)) { if(n==0) break; memset(donkey_map,false,sizeof(donkey_map)); memset(tiger_map,false,sizeof(tiger_map)); donkey_end=tiger_end=false; int r,c,d; scanf("%d %d %d",&r,&c,&d); POINT temp; temp.x=r+1; temp.y=c+1; donkey_current=temp; donkey_dir=d; scanf("%d %d %d",&r,&c,&d); temp.x=r+1; temp.y=c+1; tiger_current=temp; tiger_dir=d; for(int i=0;i<=n+1;i++) { tiger_map[i][0]=tiger_map[i][n+1]=donkey_map[i][0]=donkey_map[i][n+1]=true; tiger_map[0][i]=tiger_map[n+1][i]=donkey_map[0][i]=donkey_map[n+1][i]=true; } while(tiger_current!=donkey_current) { if(donkey_end&&tiger_end) break; if(!donkey_end) { int x=donkey_current.x; int y=donkey_current.y; if(donkey_dir==UP) { if(donkey_map[x-1][y]) { if(donkey_map[x][y+1]) donkey_end=true; else { temp.x=x; temp.y=y+1; donkey_current=temp; donkey_map[x][y]=true; donkey_dir=RIGHT; } } else { temp.x=x-1; temp.y=y; donkey_current=temp; donkey_map[x][y]=true; } } else if(donkey_dir==RIGHT) { if(donkey_map[x][y+1]) { if(donkey_map[x+1][y]) donkey_end=true; else { temp.x=x+1; temp.y=y; donkey_current=temp; donkey_map[x][y]=true; donkey_dir=DOWN; } } else { temp.x=x; temp.y=y+1; donkey_current=temp; donkey_map[x][y]=true; } } else if(donkey_dir==DOWN) { if(donkey_map[x+1][y]) { if(donkey_map[x][y-1]) donkey_end=true; else { temp.x=x; temp.y=y-1; donkey_current=temp; donkey_map[x][y]=true; donkey_dir=LEFT; } } else { temp.x=x+1; temp.y=y; donkey_current=temp; donkey_map[x][y]=true; } } else if(donkey_dir==LEFT) { if(donkey_map[x][y-1]) { if(donkey_map[x-1][y]) donkey_end=true; else { temp.x=x-1; temp.y=y; donkey_current=temp; donkey_map[x][y]=true; donkey_dir=UP; } } else { temp.x=x; temp.y=y-1; donkey_current=temp; donkey_map[x][y]=true; } } } if(!tiger_end) { int x=tiger_current.x; int y=tiger_current.y; if(tiger_dir==UP) { if(tiger_map[x-1][y]) { if(tiger_map[x][y-1]) tiger_end=true; else { temp.x=x; temp.y=y-1; tiger_current=temp; tiger_map[x][y]=true; tiger_dir=LEFT; } } else { temp.x=x-1; temp.y=y; tiger_current=temp; tiger_map[x][y]=true; } } else if(tiger_dir==RIGHT) { if(tiger_map[x][y+1]) { if(tiger_map[x-1][y]) tiger_end=true; else { temp.x=x-1; temp.y=y; tiger_current=temp; tiger_map[x][y]=true; tiger_dir=UP; } } else { temp.x=x; temp.y=y+1; tiger_current=temp; tiger_map[x][y]=true; } } else if(tiger_dir==DOWN) { if(tiger_map[x+1][y]) { if(tiger_map[x][y+1]) tiger_end=true; else { temp.x=x; temp.y=y+1; tiger_current=temp; tiger_map[x][y]=true; tiger_dir=RIGHT; } } else { temp.x=x+1; temp.y=y; tiger_current=temp; tiger_map[x][y]=true; } } else if(tiger_dir==LEFT) { if(tiger_map[x][y-1]) { if(tiger_map[x+1][y]) tiger_end=true; else { temp.x=x+1; temp.y=y; tiger_current=temp; tiger_map[x][y]=true; tiger_dir=DOWN; } } else { temp.x=x; temp.y=y-1; tiger_current=temp; tiger_map[x][y]=true; } } } } if(tiger_current!=donkey_current) cout<<"-1"<<endl; else cout<<tiger_current.x-1<<" "<<tiger_current.y-1<<endl; } return 0; }
[C++]
相关文章推荐
- HDU 4740 The Donkey of Gui Zhou(模拟)
- HDU 4740 The Donkey of Gui Zhou (模拟)
- hdu 4740 The Donkey of Gui Zhou
- hdu 4740 The Donkey of Gui Zhou(dfs模拟好题)
- hdu 4740 The Donkey of Gui Zhou 深搜(2013 ACM/ICPC Asia Regional Hangzhou Online 1003)
- hdu 4740 The Donkey of Gui Zhou
- hdu 4740 The Donkey of Gui Zhou bfs
- HDU 4740——The Donkey of Gui Zhou
- HDU 4740 The Donkey of Gui Zhou 暴力
- HDU 4740 The Donkey of Gui Zhou
- hdu 4740 The Donkey of Gui Zhou(暴力搜索)
- hdu 4740 The Donkey of Gui Zhou dfs 搜索 解题报告
- Hdu 4740 The Donkey of Gui Zhou
- HDU 4740 The Donkey of Gui Zhou (模拟)
- hdu 4740 The Donkey of Gui Zhou
- hdu 4740—€—The Donkey of Gui Zhou
- HDU 4740 The Donkey of Gui Zhou
- HDU 4740 The Donkey of Gui Zhou
- hdu 4740 The Donkey of Gui Zhou
- HDOJ 4740 - The Donkey of Gui Zhou 模拟