随笔分类 - 线段树
摘要:以下是Claris的题解: 若线段 i 和 j 相交,那么在它们之间连一条边。若这个图不是二分图,那么无解,否则令cnt 为连通块个数,那么 ans = 2cnt。 在二分图染色的过程中,每个点只需要被访问一次。对于当前所在的点 x,它可以一步走到 [1, x) 里 p[i] > p[x] 的所有
阅读全文
摘要:考虑线段树。对于一段区间,记录它的最大斜率和只考虑区间内约束的答案。 合并时一段区间的答案就是左子区间的答案加上右子区间考虑左子区间约束之和的答案。 求一个区间约束为h的答案时,判断左子区间与h的关系。如果不大于h,答案就是右子区间约束为h的答案,否则递归左子区间。 时间复杂度O(nlog2n) 代
阅读全文
摘要:用并查集记录每个联通块的根节点,每个联通块建一棵线段树,合并时合并线段树就可以了。 代码: 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 #define N 100010 6
阅读全文
摘要:bzoj2006: 定义一个四元组{x,l,r,w},表示左端点在x,右端点在[l,r]的超级和弦的最大美妙度在将w作为右端点时取到,w可以用前缀和+线段树/ST表求出。 对于每个i,我们将{i,i+L-1,i+R-1,w}放入一个大根堆中,每次取出美妙度最大的一个加到答案中,并将{i,l,w-1,
阅读全文

浙公网安备 33010602011771号