第十次
A
注意 $n\le 2$。
B
枚举最小值,算最大值最小是多少。
把每个集合排序,用一个堆维护当前选出的集合,初始把所有集合的最小值加进去。
考虑枚举下一个最小值,需要弹出当前最小值,然后加入当前最小值在其集合中的后继。
每次更新答案即可。
C
每条边都会被算 ${n-2\choose k-2}$ 次,所以只需要算每条边只算一次的结果,即 $\sum\limits_{i=1}^n\sum\limits_{j=i+1}^n f(i,j)$。
然后用一个神秘 DSU on tree 维护之,反正我不会写。
D
线段树上每个节点维护一个 $\{[l,r]\}$,表示这个节点内宝石能表示出的区间集。
考虑 push up,可以发现 $S_1,S_2$ 的合并结果为 $\{[l_1+l_2,r_1+r_2]|[l_1,r_1]\in S_1,[l_2,r_2]\in S_2\}$,
之后扫描线去掉交集即可,随机数据能过。

浙公网安备 33010602011771号