扫描线
文章平均质量分 66
Jozky86
这个作者很懒,什么都没留下…
展开
-
扫描线讲解
参考文章: 线段树+扫描线(有关扫描线的理解) 线段树+扫描线(基本原理) 扫描线 第二个文章里面的图很生动: 我总结一下就是:将所给图形的横坐标全部记录,纵坐标记录为扫描线 然后对与两个扫描线之间,找到最长的底边,累计求面积 为了快速计算出截线段长度,可以将横边赋上不同的权值,具体为:对于一个矩形,其下边权值为1,上边权值为-1。也就是区间大于1的为连续的线段(图中黄色部分) 我这里只是草草记录,详细过程可以看第三个讲课博客 代码: #include <stdio.h> #includ原创 2021-05-13 17:17:31 · 719 阅读 · 0 评论 -
Picture POJ - 1177(矩形周长并))
Picture POJ - 1177 题目: 多个矩阵相交在一起,问新图形的周长是多少 题解: 参考题解 周长分为两部分:横线和竖线 横线计算方法:现在总区间被覆盖的长度和上一次总区间被覆盖的长度之差的绝对值 那么我们只需要从上往下,再从左往右扫描两次即可 但是这样需要两次,有没有更简化的方法: 现在我们打算一次自上而下的扫描把横线竖线都算出来 横线的算法和上面说的方法一样:现在这次总区间被覆盖的长度和上一次总区间被覆盖的长度之差的绝对值 我们用线段树来记录一些信息: l,r :该节点代表的线段的左右原创 2021-08-15 21:23:03 · 272 阅读 · 0 评论 -
Hopping Rabbit
Hopping Rabbit 题意: 给你n个矩阵,每个矩阵(给出左上标和右下标),现在让你给出一个点的位置,这个点每次只能上下左右四个方向移动,且移动距离为d,是否存在一个这样的点,其所有落点都不在矩阵内。 题解: 能到达的位置都是周期重复的,比如当前点在(x,y),那么可以到达(x+d,y),(x+2d,y),所以我们将所有(k1d,k2d)到(k1d+d,k2d+d)范围内的所有图形移动至(1,1)到(d,d)范围内,相当于整体大地图上彼此可以到达的点当作一个点,这样就得到一个d * d的小地图 同样原创 2021-08-06 15:09:56 · 447 阅读 · 0 评论