专栏文章

题解:P6847 [CEOI 2019] Magic Tree

P6847题解参与者 2已保存评论 1

文章操作

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

当前评论
1 条
当前快照
1 份
快照标识符
@mips4bh2
此快照首次捕获于
2025/12/03 17:02
3 个月前
此快照最后确认于
2025/12/03 17:02
3 个月前
查看原文
f(i,j)f(i, j) 表示 ii 的子树在第 jj 天前被全部割掉的最大收益,考虑 ii 位置的果实贡献。
如果不收割 ii 位置的果实,有 f(i,j)=xsonif(x,j)f(i, j) = \sum_{x \in son_i} f(x, j)
如果收割 ii 位置的果实,有 f(i,j)=w+xsonif(x,d)f(i, j) = w + \sum_{x \in son_i} f(x, d)
二者取 max\max 即可。
暴力转移,复杂度 O(nk)O(nk),考虑优化。
考虑线段树合并。
发现收割 ii 位置的果实时,这个贡献一定是个定值,计算出这个定值,令其为 xx,扔到线段树上做区间推平下界。
区间推平下界的具体做法是:维护每个区间的 min\minmax\max。暴力 + 剪枝,当 max\max 小于等于 xx 时整块修改,当 min\min 大于等于 xx 时不用修改。这是个比较老套的套路了,复杂度是正确的。
加法操作的标记很难下传,标记永久化即可。

评论

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

正在加载评论...