题目概述
解题思路
我一开始想到的做法是贪心/动态规划。我想着能不能每次就挑石头最多的那堆来处理,把它均分,然后以此类推。随后我发现,这个方法可以举出反例:
石子堆:
31
划分次数:
2
贪心划分:
31->16, 15->15, 8, 8
最优划分:
31->11, 10, 10
也就是说,最理想的划分方式,是让每堆石子个数尽可能地接近,这样才能让最小值尽量大。
我们可以考虑一下,最小值取到最大时,需要满足的条件:
- 每一堆按照这个最小值min_max划分之后,堆的总数为m;
- 每一堆该怎么划分:如果堆A[i]的元素数目小于min_max,则该堆不做划分;如果元素数目大于min_max,则划分为,也就是除了最后一堆元素超过min_max外&#x