1 条题解

  • 0
    @ 2021-8-8 1:32:17

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    int k,a[6];
    void work()
    {
    	memset(a,0,sizeof(a));
    	for(int i=1;i<=k;++i)	cin>>a[i];
    	long long f[a[1]+1][a[2]+1][a[3]+1][a[4]+1][a[5]+1];
    	memset(f,0,sizeof(f));
    	f[0][0][0][0][0]=1;/*什么都不选也是一种情况*/
    	
    	for(int i=0;i<=a[1];++i)
    		for(int j=0;j<=a[2];++j)
    			for(int s=0;s<=a[3];++s)
    				for(int l=0;l<=a[4];++l)
    					for(int m=0;m<=a[5];++m)
    					{
    						if(i<a[1])		f[i+1][j][s][l][m]+=f[i][j][s][l][m];
    						if(j<a[2]&&i>j)	f[i][j+1][s][l][m]+=f[i][j][s][l][m];
    						if(s<a[3]&&j>s)	f[i][j][s+1][l][m]+=f[i][j][s][l][m];
    						if(l<a[4]&&s>l)	f[i][j][s][l+1][m]+=f[i][j][s][l][m];
    						if(m<a[5]&&l>m)	f[i][j][s][l][m+1]+=f[i][j][s][l][m];
    					}
    	printf("%lld\n",f[a[1]][a[2]][a[3]][a[4]][a[5]]);
    }
    
    int main()
    {
    	while(cin>>k&&k)	work();
    	return 0;
    }
    
    • 1

    信息

    ID
    182
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    22
    已通过
    14
    上传者