2021牛客暑期多校训练营6 H. Hopping Rabbit(扫描线)

Hopping Rabbit

https://ac.nowcoder.com/acm/contest/11257/H

Description

一只兔子在草原上跳来跳去,草原上有猎人布下的n个陷阱.现在将草原看作一个二维直角坐标系,兔子看作一个点,陷阱看作一个矩阵(且它的边必定与x轴或y轴平行),兔子每次会沿x轴或y轴方向移动距离d(即如果兔子在,它跳一次后在四个点中的一个.问在坐标系中是否存在一个点,使兔子无论怎么跳都不会掉进陷阱.

Solution

扫描线裸题,由于兔子的运动具有周期性,只能在 上,不妨把所有矩形都平移到 的平面上,然后利用扫描线对每个 进行扫描,如果存在一个 ,在这一行中有点没有被覆盖,那么就可以选取这个点。
以下图来自官方题解,如图所示:
图片说明
图片说明
注意到有一些矩形可能很大,或者可能在平移的时候被分割成多个矩形,分类讨论一下就可以了, 方向上可能被截成两部分, 方向同理,于是最多会被分成4个矩形。
剩下的就需要学习扫描线,使用线段树进行区间修改,区间查询即可。

Code

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=48499549

一些比赛的题解 文章被收录于专栏

一些比赛的题解

全部评论
大佬,请问为什么x2要--呀,这里想不明白
点赞 回复 分享
发布于 2021-08-18 18:25

相关推荐

一个菜鸡罢了:哥们,感觉你的简历还是有点问题的,我提几点建议,看看能不能提供一点帮助 1. ”新余学院“别加粗,课程不清楚是否有必要写,感觉版面不如拿来写一下做过的事情,教育经历是你的弱势就尽量少写 2. “干部及社团经历”和“自我评价”删掉 3. 论文后面的“录用”和“小修”啥的都删掉,默认全录用,问了再说,反正小修毕业前肯定能发出来 4. 工作经验和研究成果没有体现你的个人贡献,着重包装一下个人贡献
点赞 评论 收藏
分享
找不到工作死了算了:没事的,雨英,hr肯主动告知结果已经超越大部分hr了
点赞 评论 收藏
分享
5 收藏 评论
分享
牛客网
牛客企业服务