1 条题解

  • 0
    @ 2025-10-8 16:56:34
    #include<bits/stdc++.h>
    using namespace std;
    typedef unsigned long long uLL;
    uLL f[32][32][32][32][32];
    int main()
    {
        memset(f,0,sizeof(f));f[0][0][0][0][0]=1;
        for(int i=0;i<=30;i++)
            for(int j=0;j<=30;j++)
                for(int k=0;k<=30;k++)
                    for(int l=0;l<=30;l++)
                        for(int m=0;m<=30;m++)
                        {
                            uLL x=f[i][j][k][l][m];
                            if(i<30) f[i+1][j][k][l][m]+=x;
                            if(j<i&&j<30) f[i][j+1][k][l][m]+=x;
                            if(k<j&&k<30) f[i][j][k+1][l][m]+=x;
                            if(l<k&&l<30) f[i][j][k][l+1][m]+=x;
                            if(m<l&&m<30) f[i][j][k][l][m+1]+=x;
                        }
        int n;
        while(scanf("%d",&n)!=EOF&&n)
        {
            int a[6];memset(a,0,sizeof(a));
            for(int i=1;i<=n;i++) scanf("%d",&a[i]);
            printf("%llu\n",f[a[1]][a[2]][a[3]][a[4]][a[5]]);
        }
        return 0;
    }
    
    • 1

    *【动态规划:区间五维一边推】杨老师的照相排列

    信息

    ID
    1358
    时间
    2000ms
    内存
    512MiB
    难度
    6
    标签
    递交数
    184
    已通过
    55
    上传者