Loading

随笔分类 -  ACM——数据结构——线段树

摘要:"题目链接" 题意 给出一个m m的地图,上面有n个点,现在需要用一个自定义面积的矩形笼罩住恰好n/2个点,并且这个矩形需要有一个点在至少一个角落上,问这个矩形最小的面积是多少。 思路 有点类似于扫描线。将y坐标离散化,沿着x轴扫过去,边加点边查找,注意这里一定要每次加一列(即x相同的时候要全加进去 阅读全文
posted @ 2017-09-30 16:13 Shadowdsp 阅读(359) 评论(0) 推荐(0)
摘要:"题目链接" 题意 给出n个矩形,求周长并。 思路 学了区间并,比较容易想到周长并。 我是对x方向和y方向分别做两次扫描线。应该记录一个pre变量,记录上一次扫描的时候的长度,对于每次遇到扫描线统计答案的时候,使用当前的 去与 做相减,因为这一次如果边长增加了或者减少了,那么一定和之前的值有差值,其 阅读全文
posted @ 2017-09-26 18:39 Shadowdsp 阅读(280) 评论(0) 推荐(0)
摘要:"题目链接" 题意 给出n个矩形,求面积并。 思路 使用扫描线,我这里离散化y轴,按照x坐标从左往右扫过去。离散化后的y轴可以用线段树维护整个y上面的线段总长度,当碰到扫描线的时候,就可以统计面积。这里要注意线段树上结点维护的是线段的信息,而不是点的信息。 "参考资料" C++ include us 阅读全文
posted @ 2017-09-25 14:20 Shadowdsp 阅读(143) 评论(0) 推荐(0)
摘要:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1811 题意:给出一棵树,每一个结点有一个颜色,然后依次删除树边,问每次删除树边之后,分开的两个连通块里面的颜色交集数是多少,即公有的颜色数。 思路:可以像树形DP一样,先处理出儿子结点,然后回溯 阅读全文
posted @ 2017-05-03 14:43 Shadowdsp 阅读(549) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4819 题意:给出一个矩阵,然后q个询问,每个询问有a,b,c,代表(a,b)这个点上下左右c/2的矩形区域内的(最大值+最小值)/2是多少,并且将(a,b)的值替换成这个答案。 思路:很久以前被暴力跑过去的一道题 阅读全文
posted @ 2017-04-13 01:40 Shadowdsp 阅读(363) 评论(0) 推荐(0)
摘要:https://www.patest.cn/contests/gplt/L3-002 题意:中文题意。 思路:因为所有数<=1e5,权值线段树维护每个数出现多少次,然后每次出栈入栈都更新权值就好了。 好久没写线段树了,写的好爽233。 阅读全文
posted @ 2017-03-25 00:39 Shadowdsp 阅读(182) 评论(0) 推荐(0)