hdu 1521 排列組合【指數型生成函式】
阿新 • • 發佈:2018-11-26
根據套路列出式子:\( \prod_{i=1}^{n}\sum_{j=0}^{c[i]}\frac{x^j}{j!} \),然後暴力展開即可
#include<iostream> #include<cstdio> #include<cstring> using namespace std; const int N=205; int n,m,c[N]; double fac[N],a[N],b[N]; int main() { fac[0]=1; for(int i=1;i<=12;i++) fac[i]=fac[i-1]*i; while(~scanf("%d%d",&n,&m)) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); for(int i=1;i<=n;i++) scanf("%d",&c[i]); for(int i=0;i<=c[1];i++) a[i]=1.0/fac[i]; for(int i=2;i<=n;i++) { for(int j=0;j<=m;j++) for(int k=0;k<=c[i];k++) b[j+k]+=a[j]*(1.0/fac[k]); for(int j=0;j<=m;j++) a[j]=b[j],b[j]=0; } printf("%.0lf\n",a[m]*fac[m]); } return 0; }