uva 10664 Luggage

来源:互联网 发布:上海万户网络怎么样 编辑:程序博客网 时间:2024/05/18 03:02

这一道题和uva562类似 ,题意是:问能否平分行李

博主为朱老师的弟子

#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;const int Max = 102;int coin[Max], dp[Max*500];int sum;int m, n;char ch;void inital(){     memset(dp, 0, sizeof(dp));      dp[0] = 1;      sum = 0;      m = -1;}int main(){    scanf("%d", &n);    getchar();    while(n--)    {        inital();      //  scanf("%d", &m);        while(1)        {            m++;            scanf("%d", &coin[m]);            sum += coin[m];            ch = getchar();           // printf("%c\n",ch);            if(ch == '\n')                break;              //  printf("coin  ------ %d ------ %d\n",m,coin[m]);        }        for(int i=0; i<=m; i++)       // 666 遍历一遍            for(int j=sum; j>=coin[i]; j--)            {                if(dp[j-coin[i]])                    dp[j] = 1;            }        int i;        for(i=sum/2; i>=0; i--)            if(dp[i])             break;        if( sum - 2 * i)            printf("NO\n");        else            printf("YES\n");    }    return 0;}

0 0