南阳 zb的生日和邮票分你一般(01背包思路)

来源:互联网 发布:扮猪吃老虎 小说 知乎 编辑:程序博客网 时间:2024/04/27 19:37

这两道题其实是一样的。。。

zb的生日 ->点击打开链接

邮票分你一半-> 点击打开链接

其实就是把01背包里的总体积换成所有邮票面值之和的一半,同理zb的生日。


邮票AC代码:


#include <cstdio>#include <iostream>#include <cstring>using namespace std ;int dp[10000] ;int n,a[10000],t ;int main(){    while(scanf("%d",&t)!=EOF)    {        while(t--)        {            scanf("%d",&n) ;            int sum = 0 ;            memset(dp,0,sizeof(dp)) ;            for(int i = 0 ;i<n ;i++)            {                scanf("%d",&a[i]) ;                sum += a[i] ;            }            for(int i = 0 ;i<n ;i++)            {                for(int j = sum/2;j>=a[i] ;j--)                {                    dp[j] = max(dp[j],dp[j-a[i]]+a[i]) ;                }            }            printf("%d\n",sum-2*dp[sum/2]) ;        }    }    return 0 ;}


0 0
原创粉丝点击