排列组合 HDU - 1521 -指数型母函数
Posted sdutning
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排列组合 HDU - 1521 -指数型母函数相关的知识,希望对你有一定的参考价值。
-
排列组合
- HDU - 1521
- 一句话区分指数型母函数和母函数就是 母函数是组合数,指数型母函数是排列数
-
#include<bits/stdc++.h> using namespace std; #define maxn 12 double ans[maxn],tp[maxn],inv[maxn]; int n,m,a[maxn]; void init() { inv[0]=1; for(int i=1; i<=11; i++) inv[i]=inv[i-1]*i; } int main() { init(); while(~scanf("%d%d",&n,&m)) { for(int i=1; i<=n; i++) scanf("%d",&a[i]); memset(ans,0,sizeof(ans)); memset(tp,0,sizeof(tp)); for(int i=0; i<=a[1]; i++) ans[i]=1/inv[i]; for(int i=2; i<=n; i++) { for(int j=0; j<=m; j++) for(int k=0; k<=a[i]&&j+k<=m; k++) tp[j+k]+=ans[j]/inv[k]; for(int j=0; j<=m; j++) ans[j]=tp[j],tp[j]=0; } printf("%.0lf ",ans[m]*inv[m]); } return 0; }
以上是关于排列组合 HDU - 1521 -指数型母函数的主要内容,如果未能解决你的问题,请参考以下文章