拔河比赛 规矩把所有人分成A B两队,力气大的一方胜出 由于一开始不知道每个人力量多大,所以主持人分组定下如下策略: 根据每个人的体重尽可能的分配平均 分配的策略是:
- A B两队人数相差 <= 1
- A B两队人总量之差绝对值最小
=======================================================
比如某班级有N(可为奇数或者偶数)个人, 编号为0, 1, 2, ... (N-1) 每个人都有自身的体重, 比如 W0, W1, W2, ... W(N-1) 请问如何分配比赛两队的人数,保证双方人体重总和相差最小 打印出 A B两队的总体重(从小到大)
比如: 有7个人, 体重分别为 100 90 200 220 130 120 110
输出为(先输出体重小的两边总和): 470 500 请设计一个程序,根据人数自动来进行统计 注意输入的时候 第一个是输入的人个数,比如7个人后续输入的是7个人的体重
==================================================================
思路:
1.这是个什么问题
求的最小值
2.我的思路 把所有的可能都列出来,和所有人体重的一半相比,差绝对值最小的就是所要求的。
3如何实现我的思路
递归:n个里面选n (原始状态)<- (n + 1)个里面选n
如何实现n+1 ->n 取n+1数组中的前n个,然后最后一个和前面的元素进行交换,