P酱的冒险旅途

Edit

Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)

SubmitStatus

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  (−10 5 ≤x,y≤10 5 ,0<t≤10 5  );第二行包含一个长度为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酱离开了这片区域!

Source

第五届ACM趣味程序设计竞赛第二场(正式赛)

#include<stdio.h>
#include<cmath>
#include<queue>
#include<string.h>
#include<algorithm>
#define INF 0x3f3f3f3f
using namespace std;
char map[100000];
int T,ex,ey,t;
struct node
{int x,y,step;int zuo;
};
queue<node> q;
bool ff;
int ans;double ji(int x1,int y1,int x2,int y2)
{return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}//int biao;
void wc()
{while(!q.empty()){node end;end=q.front();q.pop();if(end.x==ex&&end.y==ey){ff=true;ans=min(ans,end.step);printf("%d\n",ans);return ;}if(end.step>t){continue;}end.step++;end.zuo++;if(map[end.zuo]=='U'){node end2=end;end2.x=end.x+0;end2.y=end.y+1;end2.zuo=end.zuo;if(ji(end2.x,end2.y,ex,ey)<ji(end.x,end.y,ex,ey)){q.push(end2);}else{q.push(end);}}if(map[end.zuo]=='D'){node end2=end;end2.x=end.x+0;end2.y=end.y-1;end2.zuo=end.zuo;if(ji(end2.x,end2.y,ex,ey)<ji(end.x,end.y,ex,ey)){q.push(end2);}else{q.push(end);}}if(map[end.zuo]=='L')//zuo{node end2=end;end2.x=end.x-1;end2.y=end.y+0;end2.zuo=end.zuo;if(ji(end2.x,end2.y,ex,ey)<ji(end.x,end.y,ex,ey)){q.push(end2);}else{q.push(end);}}if(map[end.zuo]=='R'){node end2=end;end2.x=end.x+1;end2.y=end.y+0;end2.zuo=end.zuo;if(ji(end2.x,end2.y,ex,ey)<ji(end.x,end.y,ex,ey)){q.push(end2);}else{q.push(end);}}}if(ff){printf("%d\n",ans);}else{printf("-1\n");}
}int main()
{scanf("%d",&T);while(T--){while(!q.empty()){q.pop();}scanf("%d%d%d",&ex,&ey,&t);scanf("%s",map);ff=false;ans=INF;node ks;ks.x=0;ks.y=0;ks.step=0;ks.zuo=-1;q.push(ks);wc();    }return 0;
}

UESTC 758-P酱的冒险旅途【BFS】相关推荐

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

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

  2. UESTC 758 P酱的冒险旅途

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

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

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

  4. UESTC 1899 P酱的冒险旅途

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

  5. uestc 1899 P酱的冒险旅途

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

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

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

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

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

  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. 计算机网络管理考试价格,2021年计算机网络管理员考试模拟试题库和答案...doc...
  2. 深度探索C++ 对象模型(3)-默认构造函数Default Constructor
  3. java实现人脸识别V3版本开发
  4. android viewpager 间隔,viewpager 系统兼容 clipChildren 页卡间距
  5. Nestable 可移动拖拽的树型结构的使用(jQuery)
  6. 中国电信9月将率先推出5G新号段:资费也随之曝光 最高599元/月?
  7. python read函数报错_python 使用read_csv读取 CSV 文件时报错
  8. 关于e的等式及相关证明
  9. junit5 动态测试_JUnit 5嵌套测试
  10. Office 365 Connectors 的使用与自定义开发
  11. 反激变换器matlab仿真变压器demo,反激变换器建模Matlab仿真
  12. 结构风荷载理论与matlab计算公式,结构风荷载理论与MATLAB计算
  13. 很详细的讲解什么以及为什么是卷积(Convolution)!
  14. xgp游戏列表_PC版XGP正式公布,畅玩上百款游戏每月只需10美元
  15. 微分方程中解、特解、通解的区别
  16. 问道手游服务器修改密码,问道手游账号安全设置及找回密码教程 玩转问道
  17. Redis学习之Master/Salve十一
  18. Transformer T5 模型慢慢读
  19. crout分解计算例题_如何计算有理函数的不定积分
  20. 光伏MPPT电路效率对比实测

热门文章

  1. 【endnote】解除endnote与word关联
  2. Direct self-reference leading to cycle (through reference chain: com.sco.dms.common.core.util.R
  3. 给力的同事、周到的福利——揭秘万达电商(5)
  4. 机器学习之短信、邮件、新闻分类实战学习
  5. vue启动,npm报错,麻烦大家帮忙解答,谢谢
  6. 日语的态(被动、使役、被役等详解)
  7. mysql修改密码(win)
  8. 渴望学习 Shader的伙伴有福了!高斯模糊详解!
  9. 绝缘检测—交流信号注入法
  10. putty连接centos/Ubuntu一段时间无操作无法输入 死机 断线解决办法