问题标题: 酷町堂:1210西瓜分配求大神解答

1
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
我要回答