码迷,mamicode.com
首页 > 其他好文 > 详细

271. 杨老师的照相排列

时间:2020-06-06 21:53:40      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:一个   +=   多个   namespace   照相   pac   老师   最大的   space   

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll dp[32][32][32][32][32],n,k[5];
//枚举最后一个编号最大的同学的位置,DP代表着abcde及这么多个人的总数,那么a-1bcde的总数也可求得
ll DP(int a,int b,int c,int d,int e){
    if(dp[a][b][c][d][e]!=0)
        return dp[a][b][c][d][e];
    ll s=0;
    if(a>0&&a>b) s+=DP(a-1,b,c,d,e);
    if(b>0&&b>c) s+=DP(a,b-1,c,d,e);
    if(c>0&&c>d) s+=DP(a,b,c-1,d,e);
    if(d>0&&d>e) s+=DP(a,b,c,d-1,e);
    if(e>0) s+=DP(a,b,c,d,e-1);
    dp[a][b][c][d][e]=s;
    return s;
}
int main() {
    while (cin>>n&&n!=0){
        memset(dp,0,sizeof(dp));
        memset(k,0,sizeof(k));
        dp[1][0][0][0][0]=1;
        for(int i=0;i<n;i++) cin>>k[i];
        cout<<DP(k[0],k[1],k[2],k[3],k[4])<<endl;
    }
    return 0;
}

 

271. 杨老师的照相排列

标签:一个   +=   多个   namespace   照相   pac   老师   最大的   space   

原文地址:https://www.cnblogs.com/MorrowWind/p/13056321.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!