1
已解决
王子凡
高级光能
高级光能
1210 西瓜分配
题目描述 Description
已知有一堆西瓜,请帮忙将这一堆西瓜分成两堆,已知每个西瓜的重量,现在要求分成两堆的西瓜的重量的差最小
输入描述 Input Description
第一行输入西瓜数量N (1 ≤ N ≤ 20)
第二行有N个数,W1, …, Wn (1 ≤ Wi ≤ 10000)分别代表每个西瓜的重量
输出描述 Output Description
输出分成两堆后的质量差
样例输入 Sample Input
5
5 8 13 27 14
样例输出 Sample Output
3
3
已采纳
陆麟瑞
资深天翼
资深天翼
变形的零一背包,很经典。
m是所有数之和。
int m1=m; m/=2; for(int i=1; i<=n; i++) { for(int j=m; j>=a[i]; j--) f[j]=max(f[j],f[j-a[i]]+a[i]); } cout<<m1-f[m]*2;
0
0
0
0