
线段树
文章平均质量分 68
backordinary
上海理工大学mx
展开
-
最大权值和矩阵、线段树维护最大子段和
Snowy Smile 求最大子矩阵,枚举一个上界,从上往下将同一行的数值丢到线段树里面去维护好最大子段和。一行结束后当前的最大子段和意味着在上界(枚举的)和下界(枚举)确定的情况下,所有子矩阵(左边界为最大子段初始,右边界为结束)中,和最大的那个。那么所有最大子段和最大的那个就是答案。 #include<iostream> #include<cstdio> #include<algorithm> #include<cstdlib> #include<c原创 2020-11-16 19:54:03 · 264 阅读 · 0 评论 -
覆盖的面积(HDU - 1255)
覆盖的面积(HDU - 1255) 在平面上给出若干矩形,求出被这些矩形覆盖过至少两次的区域的面积. 这题相当于扫描线的进阶版本。基本的扫描线就不讲了,讲一下这题的拓展处。记录一下每一段被完全覆盖的次数,维护区间被覆盖的面积(覆盖一次以上)维护区间被覆盖两次以上的部分的面积,显然,对于已经覆盖>=2的情况,整个区域都是合法的情况,更新的时候整段都当做合法的维护进去就好。对于当前整个区间已经被覆盖了一次的情况,那么向下询问子区间内已经覆盖一次以上的区间,那么合起来就是重复两次以上了。 #include&原创 2020-11-16 19:14:51 · 647 阅读 · 0 评论 -
时间管理,线段树,区间gcd修改,求和
时间管理 题意比较明显了。关键是维护gcd区间修改。 任老板直播的时候讲了: 在对一段区间做x变换后,下一次操作可能对区间内的数没有实质性的改变,比如如果区间内的数 全部变成1,无论什么数进行修改区间,区间的值不发生变化。具体怎么操作,维护了区间最大值和最小值,如果区间最大值=最小值=gcd(修改的值,最大值)那么说明本次修改对区间没有贡献,可以直接返回。然后指出这个算法不足之处比如对于2424242424242 这样的区间修改值=8虽然对区间没有贡献,但是最大值不等于最小值,所以依然要递归到叶子节点才原创 2020-06-06 11:01:42 · 504 阅读 · 0 评论