其他分享
首页 > 其他分享> > 1050. 鸣人的影分身

1050. 鸣人的影分身

作者:互联网

整数划分问题:900. 整数划分

注意划分出的数可以取\(0\)。

const int N=1010;
int f[N][N];
int n,m;

int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        memset(f,0,sizeof f);
        
        cin>>m>>n;

        f[0][0]=1;
        for(int i=0;i<=m;i++)
            for(int j=1;j<=n;j++)
            {
                f[i][j]=f[i][j-1];
                if(i >= j) f[i][j]+=f[i-j][j];
            }

        cout<<f[m][n]<<endl;
    }

    //system("pause");
    return 0;
}

完全背包求方案数

const int N=1010;
int f[N];
int n,m;

int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        memset(f,0,sizeof f);
        
        cin>>m>>n;
        
        f[0]=1;
        for(int i=1;i<=n;i++)
            for(int j=i;j<=m;j++)
                f[j]+=f[j-i];

        cout<<f[m]<<endl;
    }
    
    //system("pause");
    return 0;
}

标签:1050,main,const,int,memset,cin,鸣人,sizeof,分身
来源: https://www.cnblogs.com/fxh0707/p/14643200.html