联赛真题LIST
本
不过应该会咕得比较厉害
[CSP-S 2019]树的重心
给一棵树,令
为删去树上一条边后, 是分裂出两棵树中某一棵的重心的次数。求 。
首先拿出一个原树重心做根,令一个非根的点
化简得:
并且显然这条删去的边不能在
所以可以
再考虑
[NOIP 2018]保卫王国
给定一棵树,点带权,每次强制两个点选或不选,询问独立,求树的最小权覆盖集。
首先考虑不带修改的做法,定义
很显然
现在考虑如何进行修改。
发现如果修改点
考虑把转移写成矩阵的形式,设
那么从一个点
实际上就是把上面两个方程移了下项。
如果把乘法定义为:
那么方程写成矩阵乘法的形式就是:
这个东西满足结合律,所以我们可以直接定义一个倍增矩阵数组:
现在考虑修改,也就是把修改的点上不满足条件的(强制放或不放)那一项
具体来说,若两点是祖先关系,那么可以跳到同一点后将两者中祖先的限制加入后代的
复杂度
[CSP-S 2019]树上的数
咕咕咕
[CSP-S 2020]贪吃蛇
考虑如果一条蛇选择结束,需要满足什么条件。
如果他吃掉最后一名之后,没有变成最后一名,那么他一定选择吃。称这样是必吃状态。
由于整个序列是递增的,如果他吃了最后一名而没有掉到最后一名,会使得序列的
那就让新的第一名去选择是否结束,反正我吃了不会比他先死。
如果他吃掉最后一名之后,变成了最后一名,那么找到距离他最近的必吃状态,我吃不吃只和与这个必吃状态的 距离 的 奇偶性 相关。
设我在
首先显然的是
也就是说,如果
也就是,如果
然后拿队列模拟一下,和
只要遇上一个非必吃状态,就
时间复杂度
太强了!!
太强了!!
%%%@吐 舌
%%%@吐 舌