⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1557.txt

📁 杭电acm解题报告2001---2099.
💻 TXT
字号:
#include <cstdio>
#include <memory>
#define Max 100100
int sum,n,t,avg;
int pn[30];
int num[2][Max],*pre,*next,*pt;

inline int cal(int ig)
{
    int i,j,s,mmax=10;
    memset(num,0,sizeof(num));
    pre=num[0];next=num[1];
    for(i=0;i<n;i++)
    {
        pre[0]=1;
        if(i==ig)    continue;
        for(j=0;j<mmax;j++)
            if(pre[j])
            {
                next[j]+=pre[j];
                next[j+pn[i]]+=pre[j];
            }
            mmax += pn[i];
            pt=pre;
            pre=next;
            next=pt;
            memset(next,0,sizeof(num[0]));
    }
    s=0;
    i= avg+1>pn[ig] ? avg+1-pn[ig] : 0;
    for( ;i<=avg;i++)    s+= pre[i];
    return s;
}

int main()
{
    int i,j;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        sum=0;
        for(i=0;i<n;i++)
            scanf("%d",&pn[i]) , sum+=pn[i];
        avg=sum/2;
        for(i=0;i<n;i++)
        {
            printf(i==0 ? "%d" : " %d",cal(i));
        }
        printf("\n");
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -