论这题为什么可以贪心
  • 板块AT_agc009_d Uninity
  • 楼主FZzzz
  • 当前回复51
  • 已保存回复51
  • 发布时间2022/10/21 16:18
  • 上次更新2024/7/23 14:07:39
查看原帖
论这题为什么可以贪心
174045
FZzzz楼主2022/10/21 16:18

现在两篇题解一篇是直接告诉你贪心,另一篇是“正确性显然”。感觉 AGC 题题解这种情况很常见啊,直接丢上来一个玄妙做法,正确性谈都不谈。我发这种贴子好像也经常是 AGC 题。

官方题解给了一个非常漂亮的证明:假设我们不使用二进制维护集合,而使用 dd 进制,其中 dd 是一个大于 nn 的整数。

即,如果我们已经确定了 uu 子树内点的标号,记 fuf_ukdk\sum_kd^k,其中 kk 满足 uu 的子树里存在一个标号为 kk 的节点,并且它到 uu 的路径上没有标号比 kk 大的点。

那么,如果我们贪心地决定 uu 的标号,那么实际上是让 fuf_u 为最小的,大于 uu 的儿子的 ff 值和的,dd 进制表示内只有 0011 的整数。我们实际上只需要最小化 f1f_1,所以贪心是正确的。

应该也可以写一个大力调整的证法出来跟上面这个证法等价,不过这不重要。

说起来好像很多题解没写证明的题官方题解都写了,那我要说外国人写的题解就是比中国人牛逼,你们可以骂我罕见了!

2022/10/21 16:18
加载中...