description

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

上图为第三个样例的图示。


analysis

  • 思路比较好想,虽说nnn很大,但是我们可以先排个序

  • a,ba,ba,b分别快排一次,aaa按横坐标升序排序,bbb则相反

  • 如果为向上或向下,那么在aaa里二分找出当前点(快排前把(0,0)(0,0)(0,0)也丢进去)

  • 找出当前点nownownow后,若为upupup,下一个点即为a[now+1]a[now+1]a[now+1]

  • 为downdowndown,下一个点即为a[now−1]a[now-1]a[now−1]

  • 题目保证数据合法,可以免了判断

  • 左右就在bbb里二分找当前点,同理

  • 时间复杂度O((n+m)log2n)O((n+m)log_2n)O((n+m)log2​n)


code

vara,b:array[0..100000,0..2]of longint;n,m,i,j,l,r,mid,nowx,nowy:longint;ch:char;
procedure qsort1(l,r:longint);
vari,j,mid,mid1:longint;
begini:=l;j:=r;mid:=a[(l+r)shr 1,1];mid1:=a[(l+r)shr 1,2];repeatwhile (a[i,1]<mid)or(a[i,1]=mid)and(a[i,2]<mid1)do inc(i);while (a[j,1]>mid)or(a[j,1]=mid)and(a[j,2]>mid1)do dec(j);if i<=j thenbegina[0]:=a[i];a[i]:=a[j];a[j]:=a[0];inc(i);dec(j);end;until i>j;if l<j then qsort1(l,j);if i<r then qsort1(i,r);
end;
procedure qsort2(l,r:longint);
vari,j,mid,mid1:longint;
begini:=l;j:=r;mid:=b[(l+r)shr 1,2];mid1:=b[(l+r)shr 1,1];repeatwhile (b[i,2]<mid)or(b[i,2]=mid)and(b[i,1]<mid1)do inc(i);while (b[j,2]>mid)or(b[j,2]=mid)and(b[j,1]>mid1)do dec(j);if i<=j thenbeginb[0]:=b[i];b[i]:=b[j];b[j]:=b[0];inc(i);dec(j);end;until i>j;if l<j then qsort2(l,j);if i<r then qsort2(i,r);
end;
beginassign(input,'tratincice.in');reset(input);assign(output,'tratincice.out');rewrite(output);readln(n,m);for i:=1 to n dobeginfor j:=1 to 2 dobeginread(a[i,j]);b[i,j]:=a[i,j];end;readln;end;qsort1(1,n);qsort2(1,n);for i:=1 to m dobeginread(ch);if ch in['U','D'] thenbeginl:=1;r:=n;while l<=r dobeginmid:=(l+r)shr 1;if (a[mid,1]>nowx)or(a[mid,1]=nowx)and(a[mid,2]>nowy)thenr:=mid-1else l:=mid+1;end;if ch='U' thenbeginnowx:=a[r+1,1];nowy:=a[r+1,2];endelsebeginnowx:=a[r-1,1];nowy:=a[r-1,2];end;endelsebeginl:=1;r:=n;while l<=r dobeginmid:=(l+r)shr 1;if (b[mid,2]>nowy)or(b[mid,2]=nowy)and(b[mid,1]>nowx)thenr:=mid-1else l:=mid+1;end;if ch='R' thenbeginnowx:=b[r+1,1];nowy:=b[r+1,2];endelsebeginnowx:=b[r-1,1];nowy:=b[r-1,2];end;end;end;writeln(nowx,' ',nowy);close(input);close(output);
end.

【JZOJ5234】外星人的路径相关推荐

  1. Jzoj5234 外星人的路径

    有一个外星人控制了你的大脑.一开始你处于原点(0,0).外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左). 平面上有N 个关键点,每当外星人给出一个操作,你需要在 ...

  2. jzoj5234. 【NOIP2017模拟8.7A组】外星人的路径

    Description 有一个外星人控制了你的大脑.一开始你处于原点(0,0).外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左). 平面上有N 个关键点,每当外星 ...

  3. JZOJ 5234. 【NOIP2017模拟8.7A组】外星人的路径

    Description 有一个外星人控制了你的大脑.一开始你处于原点(0,0).外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左). 平面上有N 个关键点,每当外星 ...

  4. JZOJ.5234【NOIP2017模拟8.7】外星人的路径

    Description 有一个外星人控制了你的大脑.一开始你处于原点(0,0).外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左). 平面上有N 个关键点,每当外星 ...

  5. pytorch与keras_Keras vs PyTorch:如何通过迁移学习区分外星人与掠食者

    pytorch与keras by Patryk Miziuła 通过PatrykMiziuła Keras vs PyTorch:如何通过迁移学习区分外星人与掠食者 (Keras vs PyTorch ...

  6. 马斯克要往火星轨道送跑车,在深空待10亿年,静候外星人

    本文授权转自36氪 作者 | 梁风 SpaceX将要发射自己的重型火箭猎鹰,不知道是不是担心大家没有耐心等待了,马斯克放出一枚重磅炸弹:准备要将他自己的特斯拉Roadster跑车送上火星轨道. 确实够 ...

  7. rainmeter皮肤_关于雨滴桌面(rainmeter)中无界大神的仿WMP外星人播放器修改方案...

    关于雨滴桌面(rainmeter)中无界大神的仿WMP外星人播放器修改方案 很多人都在用rainmeter雨滴桌面,因为它炫酷的外表和开源的内核.当然也有很多小白想要入坑尝试一下这款软件.那么本人今天 ...

  8. Natural Sea Beauty以色列护肤品NSB外星人面膜,为肌肤赋予能量

    面对一大拨的熬夜党,问一个灵魂方面的问题:你有多久没有在11点前入睡了?也许熬夜党们一直坚守着"夜越深,自己越是自由"的信念,可是,第二天早上和熊猫同款的眼袋衰衰地告诉我们,熬夜这 ...

  9. 解决方案:macOS Mojave下Pycharm运行pygame无法加载外星人游戏图片以及无法修改颜色

    关于macOS Mojave下,Pycharm 运行pygame,加载不出外星人游戏图片以及无法修改颜色,解决方案如下:  1.官网升级Python3.7.2,Python Releases for ...

最新文章

  1. VR/AR会是微信后马化腾进军的战场吗
  2. 使用Java打印字符串表格(中英文内容不乱)
  3. boost::fusion::fused_procedure用法的测试程序
  4. c#中的Form.Show和Form.ShowDialog的区别
  5. java线程——什么是线程?
  6. 如何用计算机装手机系统,如何用手机usb重装电脑系统
  7. 关于拷贝常规数组、std::array和std::vector速度的一些测试
  8. 硬盘GPT分区与MBR分区的区别
  9. TR069 (CWMP协议即CPE广域网管理协议)
  10. Python OCR识别图片
  11. BZOJ 1062: [NOI2008]糖果雨(二维树状数组)
  12. 程序员 不经历风雨,怎么见彩虹
  13. 量子计算机采用超导技术吗,新发现的超导体材料可能是量子计算机的硅
  14. 鼠标滚动导航放大缩小
  15. iOS-bug·Failed to connect to github-production-release-asset-2e65be.s3.amazonaws.com port 443:
  16. 变电站ZRR-9000综合自动化系统的应用
  17. 【已解决】Https请求报错:unable to find valid certification path to requested target
  18. 查看bpl 引用的dll_BPL与DLL
  19. 求5个整数的平均值用c语言,编写求一组整数的和与平均值的程序
  20. 例行升级的 16.1 寸大屏本 — MagicBook Pro 2020 测评

热门文章

  1. (PTA)数据结构(作业)5、堆栈
  2. 分享几个搜索电子书网站
  3. 《一封神气的情书》李敖
  4. MyBatis知识汇总(第四篇)分页:LIMT(SQL方式),RowBounds(Java对象方式)
  5. js 控制字符串长度 区分中英文
  6. 牛!程序媛一口气拿下BAT、美团、vivo、爱奇艺等公司Offer面经总结
  7. vue-qq 实践(一)
  8. mlir toy 教程(1)
  9. 笔记整理之 寒门难出贵子1 正传
  10. 关于回溯法的递归与非递归-----N皇后问题