
扫描线
文章平均质量分 79
ez_lcw
这个作者很懒,什么都没留下…
展开
-
【XSY3479】子区间(扫描线)
题意:转化后变为:平面上给定 nnn 个关键点,qqq 次询问一个点与其左上的每个关键点形成的矩形面积的最大值。题解:挺玄妙的一题。这里假设这 nnn 个关键点都是 xxx 单调不降且 yyy 单调不降的(因为若点 AAA 在点 BBB 左上方则点 BBB 肯定无用),注意这是个壳,但不一定是凸的。由于不一定是凸的,你发现它们与询问点之间的矩形面积不是单峰的,所以不能直接二分。先考虑只有两个关键点的情况,考虑两个关键点各自的控制范围,解出来边界是一条经过两点连线中点,且与两点连线对称的直线,称其为原创 2021-12-24 15:17:24 · 593 阅读 · 0 评论 -
【XSY3404】猴戏世家
法一:题解做法。不太好想。动态维护不太好做,我们考虑先把栅栏最后长什么样维护出来。扫描线,按 xxx 从大到小扫描,过程中维护当前扫描线上的一些区间,每一个区间内的点同属于一个栅栏,然后扫描到一个栅栏的时候找到它下面的第一个区间:如果这个区间对应的栅栏出现时间比当前栅栏晚,那么之后这个区间会属于当前栅栏,那么合并当前栅栏的区间和这个区间,并继续往下找;如果这个区间对应的栅栏出现时间比当前栅栏早,那么当前栅栏延伸到这个区间时就会被挡住了。于是我们就能求出最后每一个点属于哪一个栅栏,维护区间可以用 se原创 2021-10-11 21:55:41 · 122 阅读 · 0 评论 -
【XSY3367】青春野狼不做姐控偶像的梦(线段树)
题意:给一个 1∼n1\sim n1∼n 的排列,多次询问某段区间内的值域连续子区间的个数。区间值域连续的另一种表达方式:max−min=r−lmax-min=r-lmax−min=r−l,即 (max−min)−(r−l)=0(max-min)-(r-l)=0(max−min)−(r−l)=0。考虑 l=1,r=nl=1,r=nl=1,r=n 怎么做,我们对 rrr 进行扫描线,维护有多少个 lll 满足 (max−min)−(r−l)=0(max-min)-(r-l)=0(max−min)−(r−l原创 2021-10-04 17:00:16 · 142 阅读 · 0 评论 -
【BZOJ1818】【CQOI2010】【XSY2428】内部白点(树状数组+扫描线)
先把所有点的xxx坐标离散化。然后分别将所有点按xxx、yyy排序。这里以按xxx排序为例,对于xxx坐标相同的两个点,我们把它们连成一条线段。那么按yyy坐标排序也一样,把yyy坐标相同的两个点也连成一条线段。那么连出来后的图就是这样的:那么横竖线段的所有交点(图中蓝点)即为可以变dark的点,因为它左右有dark点,上下都有dark点,符合变dark条件。那么我们怎么维护交点呢?我们...原创 2019-10-03 13:39:33 · 192 阅读 · 0 评论