比赛链接:AGC005
(刷新以获取数学公式)
C. Tree Restoring
题意
给出树上每个节点到其它节点的最远距离,问是否可能。
。
题解
离一个点最远的节点是直径两端点之一。
先把直径上的点切出来。剩余的点判断一下是不是在 和 之间即可。
D. ~K Perm Counting
题意
计数个数全排列个数,使得
。
题解
不妨先考虑 怎么做。
记恰有 个位置不合法的方案数为 , 为有不少于个位置不合法,但是恰有 个位置不合法的情况会被算 次的方案数。
于是有
二项式反演得
我们要计算的就是
考虑 如何计算。 实际上是钦定 个位置不合法,其余位置随便放的方案数。
表示前 个数, 已经钦点了 个位置不合法, 和 有没有被用于钦定。
转移有三种情况:不钦定;钦定的位置放;钦定的位置放。注意如果是不钦定,我们不用理会这个位置放了什么数。因为如果我们最终钦定了个数,我们认为剩下个数可以随意放置。
于是我们得到
当 的时候,我们对序列做一点处理:把所有模 相同的数放在一起。除了有些位置放是合法的,其余的情况和相同。
E. Sugigma: The Showdown
题意
给定 个节点, 条红边和条蓝边。红边和蓝边分别组成一棵树。A从点X出发,只能走红边;B从点Y出发,只能走蓝边。两人轮流走,可以不走,当两人走到同一点时游戏结束。A先走且要最大化游戏步数;B后走且要最小化游戏步数。输出游戏结束时进行的步数。如果不会结束输出-。
。
题解
这题的关键在于:游戏是否结束取决于A是否能走到一条红边的端点,且在蓝树上的距离不小于。
如果能走到,A可以在这两条边来回走,B永远抓不到它。
如果不能走到,能使用的红边连接蓝树上距离不超过的点。A无法离开B所在的子树。这时A会跑到一个能跑到且离Y最远的点等死。
F. Many Easy Problems
题意
给定 个点的树,对于每个,对于每种选择点的方案,求出包含这个点最小导出连通子图点数之和。
。
题解
考虑每个点对的贡献。
不妨设根为,选出个点后,点在子图中,当且仅当个点的LCA为。
如果孩子的子树大小分别为,那么对的贡献是
记以为根时,的子树个数和为,那么
这样就可以NTT优化了。