HDU-1035 Robot Motion 模拟问题(水题)
2024-08-31 11:59:54
题目链接:https://cn.vjudge.net/problem/HDU-1035
水题
代码
#include <cstdio>
#include <map>
int height, width, sp, dir[4][2]={1, 0, 0, -1, -1, 0, 0, 1};
std::map<char, int> todir;
char map[15][15];
int solve(int x, int y, int step, int vis[][15], int &loop){
if (x<0 || y<0 || x>=width || y>=height) {loop=0; return step;}
if (vis[y][x]) {loop=step-vis[y][x]; return step-loop;}
vis[y][x]=step;
return solve(x+dir[todir[map[y][x]]][0], y+dir[todir[map[y][x]]][1], step+1, vis, loop);
}
int main(void){
todir['E']=0; todir['N']=1;
todir['W']=2; todir['S']=3;
while (scanf("%d%d", &height, &width)==2 && height){
scanf("%d", &sp);
for (int y=0; y<height; y++) scanf("%s", map[y]);
int vis[15][15]={0}, loop, cnt=solve(sp-1, 0, 1, vis, loop);
if (!loop) printf("%d step(s) to exit\n", cnt-1);
else printf("%d step(s) before a loop of %d step(s)\n", cnt-1, loop);
}
return 0;
}
最新文章
- Android开发--异步加载
- [No000077]打造自己的Eclipse
- HBase 专题技术收录
- MongoDB学习与BUG解答
- Android 实现Path2.0中绚丽的的旋转菜单
- R之pryr
- Python GUI编程实践
- python 内置函数和表达式
- pod update或者pod install很慢
- objective-c 中随机数的用法 (3种:arc4random() 、random()、CCRANDOM_0_1() )
- js中设置setInterval的注意点
- CentOS 如何修改mysql 用户root的密码
- 基于Redis位图实现系统用户登录统计
- 12_Android中HttpClient的应用,doGet,doPost,doHttpClientGet,doHttpClient请求,另外借助第三方框架实现网络连接的应用,
- nextcloud大文件无法上传
- no module named selenium
- ResourceBundle类的方式来读取config.properties配置文件参数值
- Ubantu 查看系统资源占用
- Mac 10.12安装FTP工具FileZilla
- 探究rh6上mysql5.6的主从、半同步、GTID多线程、SSL认证主从复制
热门文章
- 采集电脑摄像头和mic,rtp端口推送音视频工具
- Ubuntu下使用Deepin-wine的移植版安装qq微信等
- vue组件样式添加scoped属性之后,无法被父组件修改。或者无法在本组件修改element UI样式
- express+模板引擎构建项目时遇到的几个小问题
- Spark 运行机制及原理分析
- Glide中的回调:targets
- 3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)
- PHP读xml、写xml(DOM方法)
- Microsoft Visual Studio 2015打开TFS大量报错问题解决方案
- c++ 子类构造函数初始化及父类构造初始化