考虑直接将所有树的宽度乘在一起。
对一棵树施肥一次相当于将其高度乘 x,为了方便起见,我们限制 x 为质数,注意这不会改变最终答案。
直接说比较抽象,用样例模拟一下。
8=2*2*2
243=3*3*3*3*3
250=2*5*5*5
把宽度乘起来。注意这里保留 0 次方。
height=23×30×50×20×35×50×21×30×53
ans=4×1×1×1×6×1×2×1×4
然后发现其实就是对这个 height 和 ans 进行操作,不需要详细分哪棵树了。
对其进行一次施肥,相当于把 ans 的乘积式中的某个数加上 1。这个时候贪心就比较显然了。在能够施肥,即底数是目前肥料数的一个因数时,我们肯定希望优先把 1 变成 2,而不是把 6 变成 7。证明也非常显然:
将 x 变成 x+1 相当于对原序列乘上 xx+1。
又有 12>23>34>…
于是贪心正确性得证,对每棵树和肥料分解质因数,然后对每个质因数独立地贪心就可以了。