[caioj1056](相同数列问题)填满型01背包2


1056: [视频]背包2(填满型01背包)

时间限制: 1 Sec  内存限制: 128 MB
提交: 2007  解决: 949
[提交] [状态] [讨论版] [命题人:admin]

题目描述

【题意】
    有n个数列,每个数列各自选若干个数,使得每个数列的和一样大,并且这个和要尽量大。
【输入格式】
    第一行是一个整数N(N<=100),表示一共有n个数列。
    以下N行每行是一个系列非负整数,表示每个数列的数字,用-1结束。
    一个数列中的数字个数不超过100个,每个数也不超过100。
【输出格式】
    一个整数,表示使得每个数列的和一样大,并且这个和要尽量大的值。如果找不到合适的方案,则输出0。
【样例输入】
2
2 1 -1
3 2 1 -1
【样例输出】
3
#include<cstdio>
#include<cstring>
#include<iostream> 
#include<cmath>
using namespace std;
int f[111000],a[110];
int t[111000];
int main()
{
    int n,sum;
    cin>>n;
    for(int i=1;i<=n;i++)
        {
            int x,len=0;
            while(scanf("%d",&x)!=EOF)
            {
                if(x==-1) break;
                a[++len]=x; 
            }
            sum=0;
            memset(f,0,sizeof(f));f[0]=1;
            for(int j=1;j<=len;j++)
                {
                    for(int k=sum;k>=0;k--)
                         {
                            if(f[k]==1)
                            {
                                    f[k+a[j]]=1;
                                 sum=max(sum,k+a[j]);
                             }
 
                         }
                }
                for(int i=0;i<=sum;i++)
                        if(f[i]==1) t[i]++;
        }
        for(int i=sum;i>=0;i--)
           if(t[i]==n)
        {
            printf("%d",i);
            return 0;   
         } 
        return 0;   
 } 
 

 

posted @ 2019-08-27 21:08  QUEKI嶺冬  阅读(229)  评论(0编辑  收藏  举报
/*! Color themes for Google Code Prettify | MIT License | github.com/jmblog/color-themes-for-google-code-prettify */ .pln{color:#4d4d4c}ol.linenums{margin-top:0;margin-bottom:0;color:#8e908c}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#fff;list-style-type:decimal!important;}@media screen{.str{color:#718c00}.kwd{color:#8959a8}.com{color:#8e908c}.typ{color:#4271ae}.lit{color:#f5871f}.pun{color:#4d4d4c}.opn{color:#4d4d4c}.clo{color:#4d4d4c}.tag{color:#c82829}.atn{color:#f5871f}.atv{color:#3e999f}.dec{color:#f5871f}.var{color:#c82829}.fun{color:#4271ae}} /*下面是我设置背景色,字体大小和字体*/ .cnblogs-markdown code{ background:#fff!important; } .cnblogs_code,.cnblogs_code span,.cnblogs-markdown .hljs{ font-size:16px!important; } .syntaxhighlighter a, .syntaxhighlighter div, .syntaxhighlighter code, .syntaxhighlighter table, .syntaxhighlighter table td, .syntaxhighlighter table tr, .syntaxhighlighter table tbody, .syntaxhighlighter table thead, .syntaxhighlighter table caption, .syntaxhighlighter textarea { font-size: 16px!important; } .cnblogs_code, .cnblogs_code span, .cnblogs-markdown .hljs{ font-family:consolas, "Source Code Pro", monaco, monospace !important; } //以上是代码高亮 /* 文字特效 */