1 条题解
-
0
狼人
在树形dp中处理到结点时,令表示所有以结点为公共祖先的连通分支中,使得种族狼人个数减其他种族总个数为的个数。另外注意到每个是为众数的方案实际上是相互独立的,可仅用于检查为众数的情况,故对的取值范围为,更小的不能构成成为众数的局部方案,更大的则不可能出现。故对所有状态总数实为。
考虑递推,更新时初值先考虑子树根必选。对的每个子结点为,有,其中为考虑该子树前的结果。
考虑复杂度,自下而上归纳证明复杂度为。若规模子树的根结点为,不妨认为其个子结点,各自子树的结点数为。则根据归纳假设,子树已经进行的操作消耗不超过,不妨认为最大,则可以放缩为。然后考虑本轮子树的合并,认为初值为对应子树的结果(因为和根结合只相当于其移一位),对按放缩,对按放缩,则求和为$\sum _{子结点y}\sum _{颜色i}(cnt[i]\times sz[y])=(n-S_1)n$,两个求和本都是结点个数,但对应子树不用更新。结合子树复杂度,复杂度放缩为。
考虑答案,注意“连通分支的公共祖先”已经构成所有连通分支的分类,故只需对每一个处的统计答案,枚举累加的即可。时间、空间复杂度。
信息
- ID
- 2335
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 14
- 已通过
- 1
- 上传者