hdu 1521 排列组合(指数型母函数)
来源:互联网 发布:微信外卖软件 编辑:程序博客网 时间:2024/05/10 04:32
求排列数的指数型母函数。
ans=m!/(n1!*n2!*n3!……*nk!)
m
其中∑ nk =m ,因为刚好选定m件物品。
k=1
意思就是同一种物品无论怎么排列都只算做一种,所以当选某一件物品k次时就要 除以k!
ans=m!/(n1!*n2!*n3!……*nk!)
m
其中∑ nk =m ,因为刚好选定m件物品。
k=1
意思就是同一种物品无论怎么排列都只算做一种,所以当选某一件物品k次时就要 除以k!
例如某一堆有3件物品 现在要取2件,那么排列数为2!,而事实上它2!种都是相同的,这也就是所谓的分组排列
指数型母函数:http://www.wutianqi.com/?p=2644
#include<iostream>#include<cstdio>#include<cstring>using namespace std;double c1[10010],c2[10010];int facots(int n){ int ans=1; for(int i=1;i<=n;i++) { ans*=i; } return ans;}int main(){ int n,m,i,j,k; int a[20]; while(~scanf("%d%d",&n,&m)) { memset(c1,0,sizeof(c1)); memset(c2,0,sizeof(c2)); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<=a[0];i++) { c1[i]=1.0/facots(i); } for(i=1;i<n;i++) { for(j=0;j<=m;j++) { for(k=0;k+j<=m&&k<=a[i];k++) { c2[k+j]+=c1[j]/facots(k);//更新后一种物品,取了k件物品所以除以k! } } for(j=0;j<=m;j++) { c1[j]=c2[j]; c2[j]=0; } } printf("%.0lf\n",c1[m]*facots(m));//还原原来的系数 } return 0;}
0 0
- HDU 1521 排列组合(指数型母函数)
- HDU 1521 排列组合 指数型母函数
- Hdu 1521 排列组合 指数型母函数
- hdu 1521 排列组合(指数型母函数)
- 指数型母函数:hdu 1521 排列组合
- [HDU 1521] 排列组合 指数型母函数
- HDU 1521 排列组合(指数型母函数)
- HDU 1521 排列组合 指数型母函数
- hdu 1521 排列组合 指数型母函数
- HDU-1521 排列组合 (指数型母函数)
- [指数型生成函数] HDU 1521 排列组合
- HDU 1521 排列组合 (指数型母函数)
- [ACM] hdu 1521 排列组合(指数型母函数)
- HDU 1521 排列组合 (指数型母函数)
- hdu-1521-排列组合(指数型母函数)
- HDU 1521 排列组合(指数型母函数)
- HDOJ-1521排列组合(指数型母函数)
- 排列组合 + 指数型母函数
- 程序员面试题目总结--链表(2)【找出单链表中的倒数第K个元素】
- 51. 腾讯面试题:一个二叉树,中序遍历,找一个节点的后一个节点
- CH340晶体不起振
- 获取RunningTaskInfo
- vs2008编译libpng
- hdu 1521 排列组合(指数型母函数)
- mysql更改数据文件目录方法
- SQL server2005 Analysis Services项目中出现以下错误
- Objc Block 对于变量的访问
- android-async-http开源项目介绍及使用方法
- 黑马程序员-纪念我在黑马的四个月
- 从任意ViewController切换到rootViewController
- zoj3408(最短路+dp)
- CF 260 DIV2 D. A Lot of Games(字典树+博弈)