TOJ 2821.Grouping Problem

来源:互联网 发布:pi补偿网络的设计 编辑:程序博客网 时间:2024/06/06 01:05

题目链接

01背包问题的变形,本题可以看成是一个容量为sum/2的背包问题,下面用动态规划解决,较为简洁

#include <stdio.h>#include <algorithm>int main(){    int v[8000];    int n,w[20];    while(scanf("%d",&n)&&n)    {        int sum=0;        for(int i=0;i<n;i++){            scanf("%d",&w[i]);            sum+=w[i];        }        for(int i=0;i<=sum/2;i++)            v[i]=0;        for(int i=0;i<n;i++)            for(int j=sum/2;j>=w[i];j--)                v[j]=std::max(v[j], v[j-w[i]] + w[i]);        printf("%d\n",sum-2*v[sum/2]);    }}

类似题目链接:http://www.tuicool.com/articles/qUzAr2

0 0
原创粉丝点击