食物分配
发布于 2022-03-03 17:08:17
假设有N种不同的食物,每种食物热量不同,分配给K个人来吃。为了方便,吃食物要求保持连续,比如1、2、3食物A来吃,4、5食物B来吃,6,7,8,9食物C来吃。但不能跳跃分配,例如1、4、2给A吃,3、5、6给B吃,并且同一食物不能分配给两个人吃。食物分配有多种方式,为了公平起见,我们希望分配给N个人之后,每个人分配的食物热量总和的最大值(我们称之为最大热量)尽量小。
我们用9种不同热量的食物和3个人来进行举例,例子如下:
123,456,789,这种分法,3份热量分别是6,15,24,最大热量是24
1234,567,89,这种分法,3份热量分别是10,18,17,最大热量是18
12345,67,89,这种分法,3份热量分别是10,13,17,最大热量是17
1234,567,89,这种分法,3份热量分别是10,18,17,最大热量是18
12345,67,89,这种分法,3份热量分别是10,13,17,最大热量是17
可以看到,这3种分配方式中,最后一种分配方式的最大热量值最小。当然我们还有其它很多种分配方式,但事实上,这一种分配方式是所有分配方式中,最大能量值最小的方案。
请设计分配方案,获得最大能量最小的情况,并输出这个最小值即可。
输入描述:
第一个数字表示N种不同的食物, 第二个数字表示K个人,第三组为N种食物的热量,所有的输入均以空格分开,样例如下:9 3 1 2 3 4 5 6 7 8 9输入样例: 9 3 1 2 3 4 5 6 7 8 9 输出描述: 所有分配方式中,能获得的最小的“最大热量”值,即样例的输出为:
17输出样例 17
关注者
0
被浏览
15