兰顿蚂蚁

来源:互联网 发布:ios 判断网络是否可用 编辑:程序博客网 时间:2024/06/09 14:07

解题思路:

直接dfs搜索蚂蚁走过的轨迹就OK啦,过程中注意方向的判断
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int map[110][110];char d[5]={'U','R','D','L'};int m,n;int k;void dfs(int row,int col,int cnt,char dir){if(cnt==k){printf("%d %d\n",row,col);return ;}if(map[row][col]==0){map[row][col]=1;if(dir=='U')dfs(row,col-1,cnt+1,d[3]);else if(dir=='R')dfs(row-1,col,cnt+1,d[0]);else if(dir=='D')dfs(row,col+1,cnt+1,d[1]);elsedfs(row+1,col,cnt+1,d[2]);}else{map[row][col]=0;if(dir=='U')dfs(row,col+1,cnt+1,d[1]);else if(dir=='R')dfs(row+1,col,cnt+1,d[2]);else if(dir=='D')dfs(row,col-1,cnt+1,d[3]);elsedfs(row-1,col,cnt+1,d[0]);}} int main(){int x,y;char s[10];scanf("%d%d",&m,&n);for(int i=0;i<m;i++)for(int j=0;j<n;j++)scanf("%d",&map[i][j]);scanf("%d%d%s%d",&x,&y,s,&k);dfs(x,y,0,s[0]);}


0 0