专栏文章
[IAMOI R2] 未送出的花 题解
P13680题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miofhl0e
- 此快照首次捕获于
- 2025/12/02 18:21 3 个月前
- 此快照最后确认于
- 2025/12/02 18:21 3 个月前
Solution
我们确定一种盛开度的方案后,将每个点的美丽度算出来,从大到小排序,就是这种盛开度方案的结果。
先找找性质。
性质 1
观察样例,可以发现父亲的盛开度总是大于儿子的盛开度。
怎么证明?反证法。
我们考虑两个结点 和 (),假设 是 的祖先链上的点,如果 的盛开度小于 ,交换 , 的盛开度一定会使结果不劣。
因为交换后:
- 对于 子树外的结点,没有影响;
- 对于 子树内的结点,也没有影响;
- 对于 子树内的结点但是 子树外的结点,其祖先链的盛开度集合中的 对应盛开度变为 ,其中位数一定变大或者不变。
那么最后的美丽度集合一定不劣。
性质 2
由性质 1 可知,每一个点的美丽度是其祖先链中位数的点的盛开度。
就是说,每一个点的美丽度,直接由中位数祖先的盛开度决定。
那么,每一个点盛开度,所影响到美丽度的点的数量也是一定的。
DP
定义树的拓扑序为:对树的所有节点进行排列,使得每个节点都出现在其父节点之后的排列。
由性质 1,最优方案是按照树的某种拓扑序,从大到小给定盛开度。
记每一个点所能影响到的点数量为 。
答案可以表述为:找到一个最大的 ,使得存在一个长度为 的拓扑序前缀,使得其能影响到的点总数量大于等于 。
(即找到一个最大的 ,使得存在一个拓扑序 ,有 。)
考虑树形 DP(或者说是树上背包)。
设 为 子树内,长度为 的拓扑序前缀,所能影响点的数量的最大值。
对于每一个 :
初始条件是 。
时间复杂度为树形背包复杂度为 。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...