
ACM_扫描线
文章平均质量分 79
逍遥丶綦
这个作者很懒,什么都没留下…
展开
-
线段树 hdu3255 Farming
做了这么多扫描线的题,,基本都是一个思路。改来改去,,无非就是维护的节点的内容以及push_up越写越复杂了而已首先将价格排序处理一下编号,变成编号越大的powerfol越大然后后面添加扫描线的时候将旧编号直接转换成新编号就行了对于这题S[rt][i]维护的是,rt节点对应的区间中品种为i的长度S[rt][i]维护的是,rt节点对应的区间的品种为i出现的次数原创 2015-08-12 14:14:02 · 1351 阅读 · 0 评论 -
线段树 hdu3642 Get The Treasury
不得不说,这是一题非常经典的体积并。。然而还是debug了2个多小时...首先思路:按z的大小排序。然后相当于扫描面一样,,从体积的最下方向上方扫描,遇到这个面就将对应的两条线加入到set中,或者从set中删除,然后再对set中的所有边,求一次面积并由于最后求出来的是至少有3个体积叠加的部分的体积。所以需要维护3个节点,然后push_up会稍微啰嗦一点...原创 2015-08-12 11:40:41 · 1216 阅读 · 0 评论 -
线段树 hdu1255 覆盖的面积
和之前做过的fzu的一道线段树维护的内容恰好相反这题求的是覆盖次数大于等于2的面积思路:维护两个值,一个是覆盖次数大于等于1的面积,一个是覆盖次数大于等于2的面积然后在push_up的时候仔细分析一下,想清楚更新顺序就做完了..#include#include#include#include#include#include#include#include#i原创 2015-08-11 22:41:23 · 1043 阅读 · 0 评论 -
线段树 hdu1828 Picture
最经典的一道周长并的题目。其实周长并并没有想象那么难。首先,肯定要确定,我们需要做两次扫描线。第一次是从下向上,第二次是从左向右,这样得到的才是四周的周长其次,,扫描的时候如何更新周长呢?每次增加线段后,把新得到的长度与之前的做比较,两者之差的绝对值就是这次增加线段后的长度所以每次都这样更新,最后得到的就是周长了。#include#include#include#原创 2015-08-11 22:38:29 · 1532 阅读 · 0 评论 -
线段树 hdu3265 Posters
刚开始想着添加4条边,但是发现这种思维得到的答案不对~因为,如果中间没有洞,遇到下边界的时候就在区间(x1,x2)上加一,遇到下边界的时候就在区间(x1,x2)上减一但是区间的cnt都会>=0但是如果先减一,再加一,那么因为cnt会变成负数,,所以以前的push_up就没用了后来想了一下,,为什么不直接把这个有洞的矩形,分割成4个完整的矩形呢??!分割完后,将新的矩形所原创 2015-08-11 22:34:10 · 925 阅读 · 0 评论 -
线段树 csu1082 憧憬一下集训
最简单的扫描线思想。。如果把空调温度当作横坐标,音响声音大小当作纵坐标,那么题意可以转换成,给你许多个矩形,问一个点最多被覆盖多少次~那么按照纵坐标大小排序,从下向上扫描,用线段树维护点的覆盖次数有个地方要注意排序的时候,因为不仅要按照坐标大小排序,因为s,t可能会相等,那么矩形会退化成一条线。那么我们一般的面积并的时候,是考虑两根扫描线之间的距离,而这题不仅要原创 2015-08-10 21:23:07 · 933 阅读 · 0 评论