P酱的冒险旅途
Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)

Submit  Status

P酱是个可爱的男孩子,有一天他在野外冒险,不知不觉中走入了一块神奇的地方。他在0时刻进入这个地方,每一时刻他都只能向某一特定的方

向移动长度为1的距离,当然他也可以选择不移动。移动需要花费1的时间。

各个时刻他允许移动的方向由一个字符串给出,字符串只包含UDLR四种字符,其中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时刻他能移动的方向,字符串只包含UDLR四种字母。

Output

对于每组数据输出一行,表示P酱到达出口的最早时刻。如果他无法在t时刻内到达出口,输出-1

Sample input and output

Sample Input Sample Output
2
1 -1 5
LDRDR
-2 1 8
RRUDDLRU
3
-1

Hint

第一组样例:

  1. P酱在0时刻位于原点(0,0),他只能向左移动,但他选择不走。
  2. P酱在1时刻依然位于原点(0,0),他只能向下移动,于是他向下移动到了(0,−1)
  3. P酱在2时刻位于(0,−1),他只能向右移动,于是他移动到了出口(1,−1),所以在3时刻,P酱离开了这片区域!

My Solution

用数组的话,扫一次就够了;节约数组的话要扫好几次。我选择了用数组。觉得自己写的挺麻烦的。
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
using namespace std;
const int maxn=200000+8;
int cot[26][maxn];//为了找最后一个最短的最后一个动作int main()
{int x,y,t,T,err=-1,ti;string str;scanf("%d",&T);while(T--){memset(cot,0,sizeof(cot));//不能用memset初始化除0以外的值... ... 如果想赋值0, 那么你可以用一个for loop... 至于为什么不能赋值#, 请参考百度知道http://baike.baidu.com/view/982208.htmscanf("%d%d%d",&x,&y,&t);cin>>str;int len=str.length();int l=0,r=0,u=0,d=0;for(int i=0;i<len;i++){   //第一个时间是1,所以要从1开始,但导致历遍的时候不好,所以加到下面去好了switch(str[i]){case 'L':{l++;cot['L'-'A'][l]=i+1;break;}//!注意每个地方都要用'X'-'A'转化过来case 'R':{r++;cot['R'-'A'][r]=i+1;break;}case 'U':{u++;cot['U'-'A'][u]=i+1;break;}case 'D':{d++;cot['D'-'A'][d]=i+1;break;}  //cot['d'-'a'][d]=i;default:break;}}if(x>=0&&y>=0){if(x<=r&&y<=u) { ti=max(cot['R'-'A'][x],cot['U'-'A'][y]);printf("%d\n",ti<=t? ti:err);}else printf("%d\n",err);}else if(x>=0&&y<=0){if(x<=r&&(-y)<=d) {ti=max(cot['R'-'A'][x],cot['D'-'A'][(-y)]);printf("%d\n",ti<=t? ti:err);}else printf("%d\n",err);}else if(x<=0&&y>=0){if((-x)<=l&&y<=u) {ti=max(cot['L'-'A'][(-x)],cot['U'-'A'][y]);printf("%d\n",ti<=t? ti:err);}else printf("%d\n",err);}  //等号全部放上去,不要紧的else{if((-x)<=l&&(-y)<=d) {ti=max(cot['L'-'A'][(-x)],cot['D'-'A'][-y]);printf("%d\n",ti<=t? ti:err);}else printf("%d\n",err);   //!前面没有AC是这里掉了个 else}}return 0;
}

谢谢

UESTC 758 P酱的冒险旅途相关推荐

  1. UESTC 758 P酱的冒险旅途【贪心】

    P酱的冒险旅途 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Submit Status ...

  2. UESTC oj 758 P酱的冒险旅途

    P酱的冒险旅途 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  ...

  3. UESTC 1899 P酱的冒险旅途

    P酱的冒险旅途 Time Limit: 1000 ms Memory Limit: 65535 kB Description P酱是个可爱的男孩子,有一天他在野外冒险,不知不觉中走入了一块神奇的地方. ...

  4. uestc 1899 P酱的冒险旅途

    本题的策略就是"在某个方向选择行走而不是停留,当且仅当行走能够缩短P酱与出口的距离",这里的"距离"有一个专有的称呼,称为曼哈顿距离(Manhattan Dis ...

  5. UESTC P酱的冒险旅途 785 (规律模拟)

    UESTC - 758 P酱的冒险旅途 Time Limit: 1000MS   Memory Limit: 65535KB   64bit IO Format: %lld & %llu Su ...

  6. UESTC 758:P酱的冒险旅途【水】

    P酱的冒险旅途 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  ...

  7. UESTC 758-P酱的冒险旅途【BFS】

    P酱的冒险旅途 Edit Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Sub ...

  8. P酱的冒险旅途(思维)

    P酱的冒险旅途 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit S ...

  9. UESTC--758--P酱的冒险旅途(模拟)

    P酱的冒险旅途 Time Limit: 1000MS   Memory Limit: 65535KB   64bit IO Format: %lld & %llu Submit Status ...

最新文章

  1. Ubuntu14.04 python 2.7环境下安装Scrapy
  2. Java入参关键字_Java基础17-成员变量、return关键字和多参方法
  3. 对MySQL性能影响关系紧密的五大配置参数
  4. dj鲜生-16-这是危险的模块-isdangerous
  5. Javascript自定义类
  6. CDH 5.15.2 离线安装
  7. 【Go 框架开发】Zinx 框架开发笔记
  8. 在Java中将字符串转换为日期,将日期转换为字符串
  9. 20. jQuery 遍历 - 祖先
  10. 高通工具QXDM、QCAT和QPST
  11. 读书笔记 | 《人间处方》夏目漱石写给青年的信
  12. QT 获取键盘组合键
  13. 编译原理 子集构造法实现
  14. 【2】switch语句练习1:显示法定格式的日期
  15. 双足竞走机器人的意义_双足步行机器人
  16. Tag文件和Tag标记的用法详解
  17. vue-pdf打印乱码、方块字、无法打印
  18. Indigenous students at U of T honoured for efforts in language revitalization, health equity
  19. 毕业论文小论文查重吗?
  20. linux 内网环境搭建 maven 私库

热门文章

  1. 当你的小弟说与你有代沟了
  2. cmu 计算机科学 硕士 年薪,卡内基梅隆大学就业率高不高?世界级名校学生高就业率高薪资...
  3. 初中数学503个必考知识点_初中生物必考知识点总结_生物必考知识点指南
  4. 【剑桥摄影协会】相机VS.人眼
  5. AutoCAD 如何将非1:1比例尺统一改为1:1
  6. YOLOv5-Lite:更轻更快易于部署的YOLOv5
  7. 工业绝缘监测及故障定位解决方案
  8. 用友GRP-u8 注入-RCE漏洞
  9. 代驾微信小程序现成开发,代驾司机用户端功能详细介绍
  10. 【2022年博士招聘—鹏城联培】南方科技大学张建国教授团队2022年招聘计算机视觉、人工智能和医学图像处理方向博士