博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JZOJ.5234【NOIP2017模拟8.7】外星人的路径
阅读量:7287 次
发布时间:2019-06-30

本文共 1290 字,大约阅读时间需要 4 分钟。

Description

有一个外星人控制了你的大脑。一开始你处于原点(0,0)。外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左)。
平面上有N 个关键点,每当外星人给出一个操作,你需要在这个方向上找到最近的一个关键点,并走到那个点上。保证输入数据合法。
上图为第三个样例的图示。
 

Input

第一行两个整数N,M。
接下来N 行,每行两个整数xi,yi,代表第i 个点的坐标。
接下来一行,一个长度为M 的字符串,代表操作序列。

Output

一行两个整数,代表最终你所处的位置。
 

Sample Input

输入1:4 41 11 00 1 0 0RULD输入2:7 50 00 10 -11 01 -13 03 -1DRRUD输入3:10 60 01 12 10 2-1 2-1 32 32 44 32 -1ULURDL

Sample Output

输出1:0 0输出2:3 -1输出3:1 1
 

Data Constraint

56%的数据,N≤3000,M≤3000。
100%的数据,N,M≤100000,xi,yi≤200000。

 两次快排记录一下每个点上下左右能到哪个点就好了...

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 struct data{ 9 int x,y,z;10 }po[100005];11 int n,m,f[100002][5],a;12 string qwq;13 bool comp1(const struct data a,const struct data b){14 if (a.x
>qwq;34 sort(po+1,po+1+n,comp1);35 for (int i=1;i<=n;i++){36 if ((po[i].x==po[i-1].x)&&(po[i].y
po[i-1].y)) {f[po[i].z][1]=po[i-1].z; f[po[i-1].z][0]=po[i].z;}38 }39 sort(po+1,po+1+n,comp2);40 for (int i=1;i<=n;i++){41 if ((po[i].y==po[i-1].y)&&(po[i].x
po[i-1].x)) {f[po[i].z][3]=po[i-1].z; f[po[i-1].z][2]=po[i].z;}43 44 }45 for (int i=0;i
神奇的代码

 

转载于:https://www.cnblogs.com/Lanly/p/7299730.html

你可能感兴趣的文章
js 常用提示 console.log & console.info
查看>>
php stdClass 转数组
查看>>
优化NGINX的25种手段
查看>>
svn安装
查看>>
动态容器 数组 api
查看>>
抽取IPA包里的所有图片,包括.car压缩包中的文件
查看>>
DFS lock handle等待事件
查看>>
PowerDesigner 反转Java代码生成类图
查看>>
iOS 分割线设置
查看>>
MyBatis insert 返回主键的方法
查看>>
分布式文件系统FastDFS原理介绍
查看>>
IOS基础知识
查看>>
ubuntu 13.10 SVN配置(ubuntu通用)
查看>>
vim常用技巧
查看>>
关于继承类执行构造函数的顺序问题
查看>>
ps详解
查看>>
SpringMVC用responsebody标签返回json的时候Error406
查看>>
Python开发SVN批量提交命令脚本
查看>>
关于IE的bug(CSS)
查看>>
Linux NFS服务器详解
查看>>