P酱的冒险旅途(思维)
P酱的冒险旅途
Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
P酱是个可爱的男孩子,有一天他在野外冒险,不知不觉中走入了一块神奇的地方。他在0时刻进入这个地方,每一时刻他都只能向某一特定的方向移动长度为1的距离,当然他也可以选择不移动。移动需要花费1的时间。
各个时刻他允许移动的方向由一个字符串给出,字符串只包含U
、D
、L
、R
四种字符,其中U
表示向上(y轴正方向)移动,D
表示向下(y轴负方向)移动,L
表示向左(x轴负方向)移动,R
表示向右(x轴正方向)移动。
字符串的第x个字符代表了第x时刻P酱可以移动的方向,字符串的长度只有t,也就是说,超过t时刻,P酱就要被邪恶的魔王大爷抓走了~
现在P酱在坐标原点,即(0,0)点,而出口在(x,y)点,P酱希望在规定的时间t内尽快走到出口。帮助P酱在最短的时间内离开这里吧~
Input
第一行包含一个正数 T (T≤100),表示数据组数。
接下来每组数据包含两行,第一行包含三个整数 x,y,t (−105≤x,y≤105,0<t≤105);第二行包含一个长度为t的字符串,第i个字符表示在i时刻他能移动的方向,字符串只包含U
,D
,L
,R
四种字母。
Output
对于每组数据输出一行,表示P酱到达出口的最早时刻。如果他无法在t时刻内到达出口,输出-1
。
Sample input and output
Sample Input | Sample Output |
---|---|
2 1 -1 5 LDRDR -2 1 8 RRUDDLRU |
3 -1 |
Hint
第一组样例:
- P酱在0时刻位于原点(0,0),他只能向左移动,但他选择不走。
- P酱在1时刻依然位于原点(0,0),他只能向下移动,于是他向下移动到了(0,−1)
- P酱在2时刻位于(0,−1),他只能向右移动,于是他移动到了出口(1,−1),所以在3时刻,P酱离开了这片区域!
题解:受着上题的影响,于是苦逼的我果断暴力了(想都没想);然后结果可想而知,肯定超时了。10的5次方,每次两种选择,也就是2的10万次方,不超时才算有鬼了;
没浪费时间直接按照题意写了下,就A了;
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> using namespace std; #define mem(x,y) memset(x,y,sizeof(x)) #define SI(x) scanf("%d",&x) #define PI(x) printf("%d",x) #define P_ printf(" ") const int INF=0x3f3f3f3f; const int MAXN=1e5+100; char s[MAXN]; int x,y,t; int main(){int T;SI(T);while(T--){scanf("%d%d%d",&x,&y,&t);scanf("%s",s+1);int ans=0,nx=0,ny=0,flot=0;for(int i=1;s[i];i++,ans++){if(x==nx&&y==ny){flot=1;break;}if(s[i]=='L'){if(x<=0&&nx>x)nx--;}if(s[i]=='R'){if(x>=0&&nx<x)nx++;}if(s[i]=='U'){if(y>=0&&ny<y)ny++;}if(s[i]=='D'){if(y<=0&&ny>y)ny--;}}if(flot)printf("%d\n",ans);else puts("-1");}return 0; }
暴力超时了,也贴下吧:
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> using namespace std; #define mem(x,y) memset(x,y,sizeof(x)) #define SI(x) scanf("%d",&x) #define PI(x) printf("%d",x) #define P_ printf(" ") const int INF=0x3f3f3f3f; const int MAXN=1e5+100; char s[MAXN]; int x,y,t; int ans; void dfs(int nx,int ny,int cur){if(cur>t)return;if(nx==x&&ny==y){ans=min(ans,cur-1);return;}dfs(nx,ny,cur+1);if(s[cur]=='L')dfs(nx-1,ny,cur+1);if(s[cur]=='R')dfs(nx+1,ny,cur+1);if(s[cur]=='U')dfs(nx,ny+1,cur+1);if(s[cur]=='D')dfs(nx,ny-1,cur+1); } int main(){int T;SI(T);while(T--){scanf("%d%d%d",&x,&y,&t);scanf("%s",s+1);ans=INF;dfs(0,0,1);if(ans==INF)puts("-1");else printf("%d\n",ans);}return 0; }
转载于:https://www.cnblogs.com/handsomecui/p/5244662.html
P酱的冒险旅途(思维)相关推荐
- UESTC 758 P酱的冒险旅途
P酱的冒险旅途 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
- UESTC--758--P酱的冒险旅途(模拟)
P酱的冒险旅途 Time Limit: 1000MS Memory Limit: 65535KB 64bit IO Format: %lld & %llu Submit Status ...
- UESTC oj 758 P酱的冒险旅途
P酱的冒险旅途 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
- UESTC P酱的冒险旅途 785 (规律模拟)
UESTC - 758 P酱的冒险旅途 Time Limit: 1000MS Memory Limit: 65535KB 64bit IO Format: %lld & %llu Su ...
- UESTC 1899 P酱的冒险旅途
P酱的冒险旅途 Time Limit: 1000 ms Memory Limit: 65535 kB Description P酱是个可爱的男孩子,有一天他在野外冒险,不知不觉中走入了一块神奇的地方. ...
- UESTC 758-P酱的冒险旅途【BFS】
P酱的冒险旅途 Edit Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Sub ...
- UESTC 758:P酱的冒险旅途【水】
P酱的冒险旅途 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
- UESTC 758 P酱的冒险旅途【贪心】
P酱的冒险旅途 Time Limit:1000MS Memory Limit:65535KB 64bit IO Format:%lld & %llu Submit Status ...
- cdoj_758_P酱的冒险旅途
P酱是个可爱的男孩子,有一天他在野外冒险,不知不觉中走入了一块神奇的地方.他在0 0时刻进入这个地方,每一时刻他都只能向某一特定的方向移动长度为1的距离,当然他也可以选择不移动.移动需要花费1 1的时 ...
最新文章
- JavaScript中实现私有属性的写类方式(2)
- python爬虫如何从一个页面进入另一个页面-Python爬虫信息输入及页面的切换方法...
- Git远程库版本回滚
- 一篇讲清:如何构建可重复,可扩展且盈利的“魔力”转化流程?
- 【机器学习课程01】李宏毅2020年机器学习课程开课啦!!!
- ssh免密登录配置方法及配置
- 脱离业务的技术架构,都只是一团废纸,教你从0-1建设业务架构
- Java基础---API概述---常用类(Object类/String类)---equals和==
- java 运用poi读取Excel 文件代码 demo
- 两个mapreduce 做topn_Apache Hive 是怎样做基于代价的优化的?
- iOS中文字体斜体效果
- 北京大学软件与微电子学院嵌入式系统工程系
- WinRAR 激活码(KEY)
- 辨识DV、OV、EV三种证书类型
- 纯css饼图,使用css3画饼图
- 群晖 docker 版 transmission 安装 Web UI
- 2018年8月win10教育版education最新激活密钥
- Db2 purescale环境db2start因为缺少TSAMP license报错:SQL1677N
- 二、python时间序列数据的相减
- 全球与中国农用软管卷盘市场现状及未来发展趋势