关于贪心的一些想法
  • 板块P9836 种树
  • 楼主FL_sleake
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/11/11 19:37
  • 上次更新2023/11/11 19:47:48
查看原帖
关于贪心的一些想法
368791
FL_sleake楼主2023/11/11 19:37

考虑直接将所有树的宽度乘在一起。

对一棵树施肥一次相当于将其高度乘 xx,为了方便起见,我们限制 xx 为质数,注意这不会改变最终答案。

直接说比较抽象,用样例模拟一下。

8=2*2*2
243=3*3*3*3*3
250=2*5*5*5

把宽度乘起来。注意这里保留 00 次方。

height=23×30×50×20×35×50×21×30×53height=2^3 \times 3^0 \times 5^0 \times 2^0\times 3^5 \times 5^0 \times 2^1 \times 3^0 \times 5^3

ans=4×1×1×1×6×1×2×1×4ans= 4 \times 1\times 1\times 1\times 6\times 1\times 2\times 1 \times 4

然后发现其实就是对这个 heightheight 和 ansans 进行操作,不需要详细分哪棵树了。

对其进行一次施肥,相当于把 ansans 的乘积式中的某个数加上 11。这个时候贪心就比较显然了。在能够施肥,即底数是目前肥料数的一个因数时,我们肯定希望优先把 11 变成 22,而不是把 66 变成 77。证明也非常显然:

将 xx 变成 x+1x+1 相当于对原序列乘上 x+1x\frac{x+1}{x}。

又有 21>32>43>…\frac{2}{1} > \frac{3}{2} > \frac{4}{3} > \dots

于是贪心正确性得证,对每棵树和肥料分解质因数,然后对每个质因数独立地贪心就可以了。

2023/11/11 19:37
加载中...