回滚莫队 用来处理一类区间扩张容易而收缩难的莫队问题。 大概的思路如下: 还是按莫队的方法排序(不要奇偶性优化),把所有询问按照左端点所在块分类处理。 对于左端点在同一个块$[L,R]$的,先把右端点也在$[L,R]$内的暴力处理。 而其它询问的右端点必定递增,因此我们可以实时处理出$[R,r]$的 ...
分类:
其他好文 时间:
2020-01-18 21:14:48
阅读次数:
75
给定 nn 个区间 [li,ri][li,ri],要求合并所有有交集的区间。 注意如果在端点处相交,也算有交集。 输出合并完成后的区间个数。 例如:[1,3]和[2,6]可以合并为一个区间[1,6]。 输入格式 第一行包含整数n。 接下来n行,每行包含两个整数 l 和 r。 输出格式 共一行,包含一 ...
分类:
其他好文 时间:
2020-01-18 14:23:33
阅读次数:
72
这篇博客是cyc的,看着挺容易懂的我就不再总结啦(滑稽 一个标准的板子,涉及到的只有一个叫做线段树的数据结构 First:线段树是什么? 线段树其实就是一棵二叉树,它将一个数列分成小区域,每个节点分别储存其对应的区间左右端点。 如图,设数组 a[n] ,图中 [ i,j ] 表示每一个二叉树结点对应 ...
分类:
其他好文 时间:
2020-01-18 10:53:50
阅读次数:
62
"Link" Solution 最小生成树有两个性质: 在任意最小生成树上,任意权值的边数目是相同的; 任意最小生成树,在加完了小于某权值的边之后,图的联通性是一样的。 所以先跑一遍Kruskal,对每条边处理出加入权值比他小的边之后两端点所在的联通块。 对于每组询问用,把边按边权排序之后,并查集c ...
分类:
其他好文 时间:
2020-01-18 10:20:05
阅读次数:
57
"?? ????" 题意:价值 = 区间和 × 区间最小值,求数组的子区间的最大价值 (1) 区间和 前缀和 (2)O(n^2) 枚举区间 O( n ) 枚举元素 ,根据当前元素查询相应区间和 对每个元素,维护他作为最小值的左右端点,枚举数组中的元素,该元素大于0为例,查找( i , r [ i ] ...
分类:
其他好文 时间:
2020-01-17 13:25:11
阅读次数:
58
"题意" 求是否存在?条直线,使得所有线段在其上面的投影有至少?个 ?个交点。 假如存在交点,那么从这个交点做垂线,该垂线过所有线段,因此我们需要判断是否存在一条直线过所有线段,这种直线中必定有一条两端点都是给出的线段的端点,$O(n^2)$枚举判断即可。 code: ...
分类:
其他好文 时间:
2020-01-17 09:39:25
阅读次数:
74
https://gmoj.net/senior/ contest/show/2989/2 思考什么时候先手会赢。 一开始双方都不会希望走到直径的端点上,因为那样对方就可以走直径而使自己输掉。 删掉直径的端点,考虑剩下的树的子问题。 如果又走到端点去了,对面就走到另外一个端点,那我就走到下一层的直径端 ...
分类:
其他好文 时间:
2020-01-16 22:13:14
阅读次数:
98
"T1" $n \le 5 \times 10^5 , a_i \le 10^8$ 今天就临时测了这么一道题。 考场上用单调栈水了70分,结果那30分还是因为少取模(捂脸) 正解是分治,先计算左半部分,再计算右半部分,跨区间的:在左区间用一个指针从右向左枚举,右边用一个j,k, 表示能在左区间取到最 ...
分类:
其他好文 时间:
2020-01-16 21:49:09
阅读次数:
52
"Link" 把贡献看做前缀和,第一次出现是$+$,第二次出现是$ $,之后的都是$0$。 那么预处理一下每个点后面一个和它同色的点是哪个,然后从右往左枚举左端点,线段树维护每个右端点的答案就好了。 ...
分类:
其他好文 时间:
2020-01-14 20:30:46
阅读次数:
64
链接:https://codeforces.com/problemset/problem/1285/E 题意:给一个数轴上有n个线段集,线段集若有相交,则合并为一个新的合并线段集,比如[1,6]和[2,9],因为两个线段有相交,所以要合并为[1,9],先问删掉给定的n个线段集中的任意一个,剩下的n- ...
分类:
其他好文 时间:
2020-01-14 16:13:54
阅读次数:
60