2 条题解
-
0
-
0
#include<bits/stdc++.h> using namespace std; int n,m,a[11]; double fac[11],C[11],ans[11]; void calc(int m) { fac[0]=1.0;for(int i=1;i<=m;i++) fac[i]=fac[i-1]*i; memset(C,0,sizeof(C));for(int i=0;i<=a[1];i++)C[i]=1.0/fac[i]; for(int k=2;k<=n;k++) { memset(ans,0,sizeof(ans)); for(int i=0;i<=m;i++) for(int j=0;j<=a[k] && i+j<=m ;j++) ans[i+j]+=C[i]/fac[j]; memcpy(C,ans,sizeof(ans)); } printf("%.0lf\n",C[m]*fac[m]); } int main() { while(scanf("%d%d",&n,&m)!=EOF) { for(int i=1;i<=n;i++) scanf("%d",&a[i]); calc(m); } return 0; }
- 1
信息
- ID
- 490
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 8
- 标签
- 递交数
- 319
- 已通过
- 37
- 上传者