摘要:
对于一个非叶节点,不管是否要交换子树,其左右子树内部的逆序对数都不会受影响(内部的顺序并不会影响外部产生的逆序对数),受影响的是跨左右子树的情况,所以我们考虑统计这一部分的逆序对数。节点x的左右子树根节点为p,q,u+=size[t[p].rc] * size[t[q].lc],交换后 v+=siz 阅读全文
posted @ 2022-07-24 22:21
YHXo
阅读(44)
评论(0)
推荐(0)
摘要:
相当于是线段树合并的模板题,比(雨天的尾巴)还要板。 唯一注意的是线段树的更新,因为同一子树中可能有多种颜色占主导地位,要输出编号和,比如一颗子树中,1出现3次(最多),3出现3次,那么应该输出4。 1 #include<bits/stdc++.h> 2 #define ll long long 3 阅读全文
posted @ 2022-07-24 15:58
YHXo
阅读(62)
评论(0)
推荐(0)
摘要:
显然的树上差分问题,最后要我们求每个点数量最多的物品,考虑对每个点建议线段树,查询子树时将线段树合并可以得到答案。 用动态开点的方式建立线段树,注意离散化。 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N = 1e5 + 阅读全文
posted @ 2022-07-24 14:53
YHXo
阅读(47)
评论(0)
推荐(0)

浙公网安备 33010602011771号