SDUT OJ 1598 周游列国
周游列国
Time Limit: 1000ms Memory limit: 32768K 有疑问?点这里^_^
题目描述
大家都知道孔子吧,春秋战国时候的一个老头儿。当时出国还不用护照,所以他经常赶着牛车带着弟子们周游列国。可是这路也并不是那么好走的,当遇到高山时孔子他们就得绕着走了,你得考虑他牛车的实力能不能hold住啊。当然,孔子是个很聪明的人,每次出门前都会四处打听,然后制定出一个赶车路线,然后按照路线去走。但是,由于很多路没有亲自走过他也不确定按这个路线到底能不能周游列国?然而,你有当时的地图,希望你编程判断一下按照孔子的行车路线能不能周游列国。
输入
第一行是行车路线即一个字符串只包含L,R,U和D分别代表左走,右走,上走,下走。接下来以上是两个整数H和W,0 < H,W < 20, 代表地图的高和宽。然后是H*W的地图。S代表孔子的起点。标有1~7的区域分别代表7个国家的领土,#代表高山。
输出
如果孔子能周游列国即经过这7个国家则输出Yes,否则输出No。
示例输入
RDDDDLRRRRUU
5 5
S1111
22#22
33#44
56#77
56777
示例输出
Yes 分析:此题目好坑,需要注意的是 如果给定的路线会经过 '#' 或者 'S' 应该怎样处理 ? 跳出直接输出No,还是,,,? 因为这个,我 WA 好几次!
正确的处理是:遇到'#',回退到上一步。遇到 'S',直接无视 continue 跳过就可以了!
代码:
#include <string.h>
#include <stdio.h>
#include <iostream>
#include <string>
#include <algorithm>
#include <math.h> using namespace std; char map[21][21]; int main()
{
int n, m;
char s[2000];
int len;
int i, j, k;
char ch; while(scanf("%s", s)!=EOF)
{
len = strlen(s);
//puts(s); cin>>n>>m;
int dd, ff;
int a[8];
memset(a, 0, sizeof(a)); for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
ch=getchar();
while(ch!='S' && ch!='#' )
{
if(ch>='1' && ch<='7')
{
//map[i][j]=ch;
break;
}
else
{
ch=getchar();
}
}
map[i][j]=ch; if(map[i][j]=='S')
{
dd=i;
ff=j;
}
}
} //puts(s); int flag=1; for(k=0; k<len; k++)
{
if( s[k]=='R' )
{
ff++;
if( ff>=0 && ff<m && (map[dd][ff]>='1' && map[dd][ff]<='7') )
{
a[map[dd][ff]-48]++;
continue;
}
else if(map[dd][ff]=='S')
continue;
else if(map[dd][ff]=='#' )
{
ff--;
} }
else if( s[k]=='L' )
{
ff--;
if( ff>=0 && ff<m && (map[dd][ff]>='1' && map[dd][ff]<='7') )
{ a[map[dd][ff]-48]++;
continue;
}
else if(map[dd][ff]=='S') continue;
else if(map[dd][ff]=='#') ff++; }
else if(s[k]=='U')
{
dd--;
if( dd>=0 && dd<n && (map[dd][ff]>='1' && map[dd][ff]<='7') )
{ a[map[dd][ff]-48]++;
continue;
}
else if(map[dd][ff]=='S') continue;
else if(map[dd][ff]=='#') dd++; }
else if(s[k]=='D' )
{
dd++;
if( (dd>=0 && dd<n) && (map[dd][ff]>='1' && map[dd][ff]<='7') )
{ a[map[dd][ff]-48]++;
continue;
}
else if(map[dd][ff]=='S')
continue;
else if(map[dd][ff]=='#')
dd--;
}
}
int w=1;
for(i=1; i<=7; i++)
{
if(a[i]==0)
{
w=0;
break;
}
}
if(w==0)
cout<<"No\n";
else
cout<<"Yes\n";
} return 0;
}
SDUT OJ 1598 周游列国的更多相关文章
- SDUT OJ 2607
/*http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2607*/ 题目大意:给出一个字符串,求出里 ...
- SDUT OJ 1221 亲和数 (找出某个数n所有的因子数,只需要暴力:2->sqrt(n) 即可 )
亲和数 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 如果a的因子和等于b,b的因子和等于a,且a≠b,则称a,b为亲和数对. ...
- SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )
图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 在古老的魔兽传说中,有两个军团,一个叫天 ...
- 【离散数学】 SDUT OJ 传递闭包 && memset 使用注意事项
传递闭包 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 已知有n头牛,m次战斗关系, ...
- SDUT OJ 2783 小P寻宝记
#include<iostream> #include<memory.h> #define N 10020 using namespace std; int dp[N],pi[ ...
- SDUT oj 3005 打怪升级(内存搜索)
当比赛一直纠缠骑2如何做一个非常大的数量,数组不开啊...后来他们发现自己很傻啊,该数不超过最大10什么,这个上限就是力量100什么.. .. 其它的就是记忆化搜索啊,还有就是加一点力量的瓶子当时就要 ...
- SDUT OJ 2463 学校password你必须学会科学计划
#include<iostream> #include<string.h> #include<stdio.h> #define N 10010 #define M ...
- SDUT oj 2610
/*题目大意:输入一序列n个数字,然后输入m个询问,每个询问包含左边区间和右边区间,还有a和b,问你这个区间内有几个数大于等于a且小于等于b 做法:树状数组,先求出这个区间内有几个数小于a,然后求这个 ...
- SDUT OJ 效率至上(线段树)
效率至上 Time Limit: 5000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 题意很简单,给出一个数目为n ...
随机推荐
- Spring的声明式事务管理<tx:advice/> 有关的设置
<tx:advice/> 有关的设置 这一节里将描述通过 <tx:advice/> 标签来指定不同的事务性设置.默认的 <tx:advice/> 设置如下: 事务传 ...
- MongoDB GridFS(命令行+php操作)
一.GridFS是什么 & 为什么需要它 我们知道目前MongoDB的BSON文件最大只能是16M,也就是说单个文档最多只能存储16M的数据,那么如果需要MongoDB存储超过16M的大文件该 ...
- GitHub中watch、star、fork的作用
star 的作用是收藏,目的是方便以后查找. watch 的作用是关注,目的是等作者更新的时候,你可以收到通知. fork 的作用是参与,目的是你增加新的内容,然后 Pull Request,把你的修 ...
- T2832 6个朋友 codevs
http://codevs.cn/problem/2832/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 有这么一种说法: ...
- Java搜索引擎选择: Elasticsearch与Solr(转)
Elasticsearch简介 Elasticsearch是一个实时的分布式搜索和分析引擎.它可以帮助你用前所未有的速度去处理大规模数据. 它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者 ...
- php-cpp用来开发php的拓展
官网: http://www.php-cpp.com/documentation/install, 找时间要学一下.
- springboot mybatis 项目框架源码 shiro 集成代码生成器 ehcache缓存
1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.service等完整模块2. ...
- Spring4+SpringMVC+Hibernate4整合入门与实例
配置web.xml <? xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&q ...
- 编资源bundle时图片文件变成tiff的解决方法
一般,编写SDK的时候,如果SDK还带了一些资源文件,那么最理想的是将资源文件也打包成为bundle给应用方一起使用.而在编资源bundle时,有时会发现编译好后的图片文件从png转成了tiff,这样 ...
- 浅谈xss原理
近日,论坛上面XSS满天飞,各处都能够见到XSS的痕迹,前段时间论坛上面也出现了XSS的迹象.然后我等小菜不是太懂啊,怎么办?没办法仅仅有求助度娘跟谷歌这对情侣了. 能够说小菜也算懂了一些.不敢藏私, ...