装球:设有n个盒子(n足够大,可装入任何数量的球),分别编号1,2,……。同时有k个小球(k>0),今将k 个小球装入到盒子中去。
装入规则如下:
(1)第一个盒子不能为空。
(2)装入必须严格按递增顺序进行。
例如,当k=8,n=6时,装入方法有1,2,5或1,3,4
(3)在满足上面的两个条件下,要求有球的盒子尽可能多。
(4)装完后,相邻盒子中球个数差的绝对值之和最小(未装的盒子不计)。
如上例中:
装入法1,2,5,则差的绝对值之和为2-1+5-2=4
装入法1,3,4,则差的绝对值之和为3-1+4-3=3
[程序要求] 给出k(k表示小球的个数)之后,求出满足上述四个条件的装入方法。
装入规则如下:
(1)第一个盒子不能为空。
(2)装入必须严格按递增顺序进行。
例如,当k=8,n=6时,装入方法有1,2,5或1,3,4
(3)在满足上面的两个条件下,要求有球的盒子尽可能多。
(4)装完后,相邻盒子中球个数差的绝对值之和最小(未装的盒子不计)。
如上例中:
装入法1,2,5,则差的绝对值之和为2-1+5-2=4
装入法1,3,4,则差的绝对值之和为3-1+4-3=3
[程序要求] 给出k(k表示小球的个数)之后,求出满足上述四个条件的装入方法。
如果这时候还剩下球,则从第n个盒子开始往前,每个盒子放一个球,把剩下的球分完
这样,可以满足lz的所有要求
lz要求的条件4,个人理解应该是基于条件3的,即在盒子尽量多的情况下绝对值和最小
条件4可以转化为最后一个数减第一个数尽量小
盒子数的话,上面这个方法是最多的了,不可能有更多了
在此基础上,最大数减最小数的差为n-1或n,不可能更小了
以上