专栏文章

[IAMOI R2] 未送出的花 题解

P13680题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miofhl0e
此快照首次捕获于
2025/12/02 18:21
3 个月前
此快照最后确认于
2025/12/02 18:21
3 个月前
查看原文

Solution

我们确定一种盛开度的方案后,将每个点的美丽度算出来,从大到小排序,就是这种盛开度方案的结果。
先找找性质。

性质 1

观察样例,可以发现父亲的盛开度总是大于儿子的盛开度。
怎么证明?反证法。
我们考虑两个结点 uuvvuvu\ne v),假设 uuvv 的祖先链上的点,如果 uu 的盛开度小于 vv ,交换 uuvv 的盛开度一定会使结果不劣。
因为交换后:
  • 对于 uu 子树外的结点,没有影响;
  • 对于 vv 子树内的结点,也没有影响;
  • 对于 uu 子树内的结点但是 vv 子树外的结点,其祖先链的盛开度集合中的 uu 对应盛开度变为 vv,其中位数一定变大或者不变。
那么最后的美丽度集合一定不劣。

性质 2

由性质 1 可知,每一个点的美丽度是其祖先链中位数的点的盛开度。
就是说,每一个点的美丽度,直接由中位数祖先的盛开度决定。
那么,每一个点盛开度,所影响到美丽度的点的数量也是一定的。

DP

定义树的拓扑序为:对树的所有节点进行排列,使得每个节点都出现在其父节点之后的排列。
由性质 1,最优方案是按照树的某种拓扑序,从大到小给定盛开度。
记每一个点所能影响到的点数量为 cnticnt_i
答案可以表述为:找到一个最大的 dd,使得存在一个长度为 nd+1n-d+1 的拓扑序前缀,使得其能影响到的点总数量大于等于 kk
(即找到一个最大的 dd,使得存在一个拓扑序 {si}\{s_i\},有 i=1nd+1cntsik\sum_{i=1}^{n-d+1}cnt_{s_i}\ge k。)
考虑树形 DP(或者说是树上背包)。
fcu,jf_{cu,j}cucu 子树内,长度为 jj 的拓扑序前缀,所能影响点的数量的最大值。
对于每一个 xsoncux\in son_{cu}
fcu,kminmini+j=ki,j1fcu,i+fx,jf_{cu,k}\overset{\min}{\leftarrow}\min_{i+j=k\land i,j\ge 1}f_{cu,i}+f_{x,j}
初始条件是 fcu,1=cntcuf_{cu,1}=cnt_{cu}
时间复杂度为树形背包复杂度为 O(n2)O(n^2)

评论

0 条评论,欢迎与作者交流。

正在加载评论...