周游列国
来源:互联网 发布:网络舆情监控系统开源 编辑:程序博客网 时间:2024/06/10 23:39
题目描述
大家都知道孔子吧,春秋战国时候的一个老头儿。当时出国还不用护照,所以他经常赶着牛车带着弟子们周游列国。可是这路也并不是那么好走的,当遇到高山时孔子他们就得绕着走了,你得考虑他牛车的实力能不能hold住啊。当然,孔子是个很聪明的人,每次出门前都会四处打听,然后制定出一个赶车路线,然后按照路线去走。但是,由于很多路没有亲自走过他也不确定按这个路线到底能不能周游列国?然而,你有当时的地图,希望你编程判断一下按照孔子的行车路线能不能周游列国。
输入
第一行是行车路线即一个字符串只包含L,R,U和D分别代表左走,右走,上走,下走。接下来以上是两个整数H和W,0 < H,W < 20,代表地图的高和宽。然后是H*W的地图。S代表孔子的起点。标有1~7的区域分别代表7个国家的领土,#代表高山。
输出
如果孔子能周游列国即经过这7个国家则输出Yes,否则输出No。
示例输入
RDDDDLRRRRUU5 5S111122#2233#4456#7756777
示例输出
Yes
#include <iostream>#include <cstdio>#include <cstring>using namespace std;char order[500];char mp[25][25];bool vis[8];int main(){ int h,w,i,j,k; int x,y; while(~scanf("%s",order)) { memset(vis,0,sizeof(vis)); scanf("%d%d%*c",&h,&w); for(i=0; i<h; i++) for(j=0; j<w; j++) { scanf("%c",&mp[i][j]); if(j==w-1) scanf("%*c"); //吃掉换行 if(mp[i][j]=='S') { x=i; y=j; } } //另一种输入 for(i=0;i<h;i++) scanf("%s",mp[i]); for(i=0;i<h;i++) { for(j=0;j<w;j++) { if(mp[i][j]=='S') { x=i; y=j; } break; } if(j<w) break; } for(i=0; order[i]!='\0'; i++) { if(order[i]=='L') { y-=1; if(mp[x][y]=='#') y+=1; else if(mp[x][y]>='1'&&mp[x][y]<='7') { k=mp[x][y]-'0'; vis[k]=1; } } else if(order[i]=='R') { y+=1; if(mp[x][y]=='#') y-=1; else if(mp[x][y]>='1'&&mp[x][y]<='7') { k=mp[x][y]-'0'; vis[k]=1; } } else if(order[i]=='U') { x-=1; if(mp[x][y]=='#') x+=1; else if(mp[x][y]>='1'&&mp[x][y]<='7') { k=mp[x][y]-'0'; vis[k]=1; } } else if(order[i]=='D') { x+=1; if(mp[x][y]=='#') x-=1; else if(mp[x][y]>='1'&&mp[x][y]<='7') { k=mp[x][y]-'0'; vis[k]=1; } } } int sum=0; for(i=1; i<=7; i++) sum+=vis[i]; if(sum==7) printf("Yes\n"); else printf("No\n"); } return 0;}
0 0
- 周游列国
- BNU 4184 - 骑士周游列国
- 周游列国(简单枚举)
- 深度优先搜索 骑士周游列国
- SDUTOJ 1598 周游列国(简单的模拟题)
- [从头学数学] 第183节 周游列国拜诸侯(上)
- [从头学数学] 第184节 周游列国拜诸侯(中)
- [从头学数学] 第185节 周游列国拜诸侯(下)
- 【无浪】花了两周时间纯手打打出来的Java记事本
- 将Ubuntu的HOME目录下的文件夹名字改回英文的简单办法
- windows下生成MTK手机串号
- JSON解析(序列化和反序列化)
- JAVA语言的特点
- 周游列国
- UML类图实例----PPT播放和笔记同步系统
- UVA - 10604 Chemical Reaction 记忆化搜索
- EXCEL中如何提取身份证出生日期和性别信息以及检验身份证号码的正确性
- 面向对象的原则
- iOS沙盒目录解析
- Go by Example: If/Else
- 输入一段字符串和要判断的字母,然后判定该字母是否在字符串里面,给出相应的提示
- 7-06. 奥运排行榜(25)(数学 ZJU_PAT)