uestc--758--P酱的冒险旅途
来源:互联网 发布:双色球参选数据2017 编辑:程序博客网 时间:2024/05/01 17:20
P酱的冒险旅途
Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
P酱是个可爱的男孩子,有一天他在野外冒险,不知不觉中走入了一块神奇的地方。他在
各个时刻他允许移动的方向由一个字符串给出,字符串只包含U
、D
、L
、R
四种字符,其中U
表示向上(D
表示向下(L
表示向左(R
表示向右(
字符串的第
现在P酱在坐标原点,即
Input
第一行包含一个正数
接下来每组数据包含两行,第一行包含三个整数 U
,D
,L
,R
四种字母。
Output
对于每组数据输出一行,表示P酱到达出口的最早时刻。如果他无法在-1
。
Sample input and output
21 -1 5LDRDR-2 1 8RRUDDLRU
3-1
Hint
第一组样例:
- P酱在
0 0时刻位于原点(0,0) (0,0),他只能向左移动,但他选择不走。 - P酱在
1 1时刻依然位于原点(0,0) (0,0),他只能向下移动,于是他向下移动到了(0,−1) (0,−1) - P酱在
2 2时刻位于(0,−1) (0,−1),他只能向右移动,于是他移动到了出口(1,−1) (1,−1),所以在3 3时刻,P酱离开了这片区域!
思路:不能用DFS进行深搜,可能性太大了,会超时的。考虑最优办法,即每次走向都是朝着终点的方向的道路肯定是最优解。按照这个思路写题会方便很多。
AC代码:
#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#define INF 0X3f3f3f using namespace std;const int MAXN=1e5+100;//用const来定义MAXN 不太明白是为什么 但是用宏定义老师出问题 char map[MAXN];int sx,sy,t,ans;bool flag;int main(){int Tcase;scanf("%d",&Tcase);while(Tcase--){scanf("%d%d%d",&sx,&sy,&t);scanf("%s",map+1);int tempx=0,tempy=0,ans=0;flag=false;for(int i=1;i<=t;i++){if(tempy==sy&&tempx==sx){flag=true;ans=i-1;break;}if(map[i]=='U'&&tempy<sy)tempy++;if(map[i]=='D'&&tempy>sy)tempy--;if(map[i]=='L'&&tempx>sx)tempx--;if(map[i]=='R'&&tempx<sx)tempx++;}if(flag)printf("%d\n",ans); elseprintf("-1\n");}return 0;}
0 0
- UESTC 758 P酱的冒险旅途
- UESTC 758 P酱的冒险旅途
- uestc--758--P酱的冒险旅途
- UESTC 758 P酱的冒险旅途
- UESTC 1899 P酱的冒险旅途
- uestc 1899 P酱的冒险旅途
- UESTC--758--P酱的冒险旅途(模拟)
- UESTC 758-P酱的冒险旅途【BFS】
- UESTC 758 P酱的冒险旅途【贪心】
- UESTC oj 758 P酱的冒险旅途
- UESTC 758:P酱的冒险旅途【水】
- UESTC P酱的冒险旅途 785 (规律模拟)
- cdoj_758_P酱的冒险旅途
- 人生最大的冒险就是不冒险
- 不去冒险,才是最大的冒险
- 旅途的意义
- 新的旅途
- 旅途的包袱
- 切割一串地址
- static作用
- std::function std::bind
- 第二周项目1宣告主权
- iOS之获取UITableViewCell中UITextField的值方法总结(二)
- uestc--758--P酱的冒险旅途
- 可配置的数据库连接类
- 双边滤波算法原理
- HTML5的新特性
- 【重构C++知识体系】堆栈的研究
- 过河卒算法
- gstreamer插件调用ffmpeg 详解
- Mars安卓第二季
- 入门第三篇(图片理论基础)