1 条题解
-
1
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn=155; int c[maxn][maxn]; int ans,d[maxn]; int sum; int n; inline void pre(){ for(int i=0;i<=n;i++){ c[i][0]=1; for(int j=1;j<=i;j++) c[i][j]=c[i-1][j]+c[i-1][j-1]; } } int main(){ cin>>n; if(n==1){ cin>>d[1]; if(d[1]==0) cout<<1<<endl; else cout<<0<<endl; return 0; } pre(); for(int i=1;i<=n;i++){ cin>>d[i]; if(!d[i]) return cout<<0<<endl,0; d[i]--; sum+=d[i]; } if(sum!=n-2) return cout<<0<<endl,0; sum=0,ans=1; for(int i=1;i<=n;i++) ans*=c[n-2-sum][d[i]],sum+=d[i]; cout<<ans<<endl; return 0; }
- 1
信息
- ID
- 1242
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 5
- 标签
- 递交数
- 12
- 已通过
- 5
- 上传者