给定的框阵列A
使得每个盒子包含它的一些球和ith
盒具有球A[i]
数。我们必须从任何盒挑M
球,使得所有箱子的最大球应该是最低
例如A = [1,9,3,7,5,6,4,8,2]
和M = 6
比我们会挑3 balls from 2nd box
,2 balls from 8th box
和1 ball from 4th box
而最终的阵列看起来像A = [1,6,3,6,5,6,4,6,2]
我应该使用哪种算法?
1 < A[i] < 1e9
1 < M < 1e18
首先,没有标准的算法来使用你的问题,所以我会解释这应该可以解决的方式。
这个问题需要你找到修改数组,这样您将获得的“最大盒子”的最小可能经常。这里的关键是要找到最大的数组,并从它的每一次提取球,在同一时间,由1降低M此项动作要重复,而X!= 0。使用您的示例,这些步骤是这样的:
A = [1,9,3,7,5,6,4,8,2] A = [1,8,3,7,5,6,4,8,2] A = [1,7,3,7,5,6,4,8,2] A = [1,7,3,7,5,6,4,7,2] A = [1,6,3,7,5,6,4,7,2] A = [1,6,3,6,5,6,4,7,2] A = [1,6,3,6,5,6,4,6,2]
如果您还有什么问题,随便问!我也可以为你提供一个完整的工作算法,但你应该尝试自己先创建它!