「考试反思」2020-12-02 小雪

T1

主席树做一下就行了,好像被标算暴踩

T2

这题目有个比较妙的性质:交换的时候只是这个段之内进行交换,并不影响段之间的逆序对

那么不难得到直接维护每个区间长度的逆序对总数

在交换的时候直接翻顺序对为逆序对即可

我们发现这里的序列的区间长得很像线段树,也可以想成用归并的形式来求解

所以代码实现稍微有点细节,需要先减掉相等情况下的数目

T3

先把题目转化出来,每次删掉一个数,剩下的数的所有方案 (sum) 肯定不变

然后如果把这个数换成剩下的和加上 (1) ,那么得到了 (2sum+1) 种方案

所以我们求这个剩下的数的最多方案就行了

因为值域比较小,可以 (bitset)

然后考虑直接输出剩下的数的和是不能过对拍的,那么考虑这个换成的数应该是什么

如果有一个数加上任意个其它的数不会造成重复,那么这样的数的最小值就是答案,上面的和加一符合

这样的数 (x) 一定不可以被表示成两个无交的集合的和的差

那么直接 (bitset) 左移右移做就行了

T4

(d_x)(x) 最近的点距离 (x) 的距离,那么有几个性质:

如果 (d_xle d_{fa_x}) 那么会考虑在 (fa_x) 处放

然后考虑记 (f_x) 表示深度最浅的羊是不是被保护和 (g_x) 子树里面远能保护的点

然后考虑转移,先统计上来 (g_x),这样就可以处理跨子树保护的问题

然后再考虑儿子的 (d) 和根的 (d) ,如果大于就在儿子那里放个牧羊人

很厉害的题目,现在的能力确实想不出来,性质挺深刻的

原文地址:https://www.cnblogs.com/yspm/p/14074928.html