HDU 3912 Turn Right
来源:互联网 发布:ps淘宝美工修图视频 编辑:程序博客网 时间:2024/06/05 16:55
一道单纯的模拟题,说的是一个人从起点去往终点,然后再由终点回到起点,判断其是否能够走完全部的点。
在行走的过程中存在规则,在一个位置优先走右,然后是前和左,最后是后。
注意:不是走到终点边缘的格子就ok了,还要判断方向(卡了我好久T_T)。
#include <cstdio>#include <string>#include <cstring>#include <iostream>#include <algorithm>bool maps[550][550][4];bool vis[550][550];int R,C,en,ex;int gox[4][4]={{1,0,-1,0},{0,-1,0,1},{-1,0,1,0},{0,1,0,-1}};int goy[4][4]={{0,1,0,-1},{1,0,-1,0},{0,-1,0,1},{-1,0,1,0}};int dfs(int x,int y,int endx,int endy,int hx){ //printf("x=%d y=%d hx=%d\n",x,y,hx); //system("pause"); while (1){ int hy=1; for (int i=0;i<4;i++){ int x0=x+gox[hx][i]; int y0=y+goy[hx][i]; if (x0==endx&&y0==endy) return 0; if (!maps[x][y][(hx+i+3)%4]&&x0>=0&&x0<R&&y0>=0&&y0<C){ vis[x0][y0]=true; //printf("%d %d %d %d %d\n",x0,y0,i,(hx+i+3)%4,maps[x][y][(hx+i+3)%4]); x=x0;y=y0;hx=(hx+i+3)%4; //printf("x=%d y=%d hx=%d\n",x,y,hx); //system("pause"); //dfs(x0,y0,endx,endy,(hx+i+3)%4); hy=0; break; } } if (hy) break; } return 0;}int main (){ int T;scanf("%d",&T); while (T--){ memset(vis,0,sizeof(vis)); scanf("%d%d",&R,&C); for (int i=0;i<R;i++) for (int j=0;j<C;j++) vis[i][j]=maps[i][j][0]=maps[i][j][1]=maps[i][j][2]=maps[i][j][3]=false; scanf("%d%d",&en,&ex); for (int i=0;i<2*R-1;i++){ if (i%2==0){ for (int j=0;j<C-1;j++){ int a;scanf("%d",&a); if (a){ maps[i/2][j][0]=maps[i/2][j+1][2]=true; } } } else { for (int j=0;j<C;j++){ int a;scanf("%d",&a); if (a) { maps[i/2][j][3]=maps[i/2+1][j][1]=true; } } } } // for (int i=0;i<4;i++){ // printf("%d %d %d %d\n",gox[i][0],gox[i][1],gox[i][2],gox[i][3]); // } dfs(0,en,R,ex,3); dfs(R-1,ex,-1,en,1); int ans=1; for (int i=0;i<R;i++) for (int j=0;j<C;j++) if (!vis[i][j]) {ans=0;break;} if (ans) printf("YES\n"); else printf("NO\n"); } return 0;}
0 0
- HDU 3912 Turn Right
- HDU 3912 Turn Right(模拟)
- HDU 3912 Turn Right 题解
- HDU-3912 Turn Right 简单搜索
- ACM篇:HDU 3912 -- Turn Right
- HDU 3912 Turn Right + HDU 1254 推箱子 + HDU 1983 Kaitou Kid - The Phantom Thief (2)
- HDU 3912 Turn Ringht
- hdu3912 Turn Right
- Right turn bunoj
- SCU4445-Right turn
- 英语练习105 Turn right
- SCU-4445 Right turn(模拟)
- HDU Turn the corner
- HDU 5771 Turn Game
- Turn the corner HDU
- BNUoj 50401 Right turn 转向问题
- HDU 2438 Turn the corner
- HDU 4869 Turn the pokers
- C语言中的时间和程序暂停
- Codeforces Round #253 (Div. 1)-A,B
- ASWing 学习(1)
- POJ3067 Japan
- JD 1385:重建二叉树
- HDU 3912 Turn Right
- js页面跳转
- LS2533A Linkas
- 利用DHT网络原理制作bt采集蜘蛛
- 利用ldd打造Linux下的绿色软件包
- C语言包含头文件时用引号和尖括号的区别
- DHT网络原理制作bt采集蜘蛛,开源版
- 现在公开一个DHT网络爬虫网络爬虫供大家一起交流
- 黑马程序员_Java基础Part2