排列组合

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5209    Accepted Submission(s): 2287

Problem Description

有n种物品,并且知道每种物品的数量。要求从中选出m件物品的排列数。例如有两种物品A,B,并且数量都是1,从中选2件物品,则排列有"AB","BA"两种。

Input

每组输入数据有两行,第一行是二个数n,m(1<=m,n<=10),表示物品数,第二行有n个数,分别表示这n件物品的数量。

Output

对应每组数据输出排列数。(任何运算不会超出2^31的范围)

Sample Input

2 2

1 1

Sample Output

2

解析:不能单纯的认为是一个简单的排列组合,不等于C(n,m)*A(m,m),因为有可能重复。例如AAB,AAB

指数母函数自行了解

#include<bits/stdc++.h>
using namespace std;#define e exp(1)
#define pi acos(-1)
#define mod 1000000007
#define inf 0x3f3f3f3f
#define ll long long
#define ull unsigned long long
#define mem(a,b) memset(a,b,sizeof(a))
int gcd(int a,int b){return b?gcd(b,a%b):a;}const int maxn=105;
int n,m,s[maxn];
double c1[maxn],c2[maxn],f[maxn];void init()
{mem(c1,0);mem(c2,0);
}
int main()
{f[0]=1;for(int i=1; i<11; i++)f[i]=f[i-1]*i;while(~scanf("%d%d",&n,&m)){init();for(int i=0; i<n; i++)scanf("%d",&s[i]);for(int i=0; i<=s[0]; i++)c1[i]=1.0/f[i];for(int i=1; i<n; i++){for(int j=0; j<=m; j++){for(int k=0; k<=s[i]&&k+j<=m; k++){c2[j+k]+=c1[j]*1.0/f[k];//注意与普通母函数不同 }}for(int j=0; j<=m; j++){c1[j]=c2[j];c2[j]=0;}}printf("%.0f\n",c1[m]*f[m]); }return 0;
}

hdu1521(指数母函数)相关推荐

  1. hdu1521 排列组合

     Problem Description 有n种物品,并且知道每种物品的数量.要求从中选出m件物品的排列数.例如有两种物品A,B,并且数量都是1,从中选2件物品,则排列有"AB" ...

  2. 普通母函数与指数母函数

    大佬博客普通母函数: 在用到母函数之前啊,恐怕很少有人听过母函数,我也一样,我当时是做杭电acm的2082题要用母函数做才去了解母函数的.当然母函数分为很多种,包括普通母函数.指数母函数.L级数.贝尔 ...

  3. hdu1521 指数型母函数

    排列组合 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  4. 排列组合(HDU-1521)

    Problem Description 有n种物品,并且知道每种物品的数量.要求从中选出m件物品的排列数.例如有两种物品A,B,并且数量都是1,从中选2件物品,则排列有"AB",& ...

  5. 排列与组合的一些定理(二)

    一,容斥原理 设S是一个集合,Ai 是S 中具有性质 Pi 的元素组成的子集合.那么,S中既不具有性质P1,也不具有性质P2,...更不具有性质Pn 的元素个数为: 二,容斥原理计算 有限制的重组合问 ...

  6. 网易游戏2011.10.15校园招聘会笔试题

    http://blog.csdn.net/hackbuteer1/article/details/6878570 1.对于一个内存地址是32位.内存页是8KB的系统.0X0005F123这个地址的页号 ...

  7. 母函数 入门 + 模板

    在数学中,某个序列的母函数(Generating function,又称生成函数)是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息.使用母函数解决问题的方法称为母函数方法. 母函数可分为很多 ...

  8. dp 母函数 入门 + 模板

    dp 母函数 入门 + 模板 在数学中,某个序列的母函数(Generating function,又称生成函数)是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息.使用母函数解决问题的方法称为 ...

  9. php 标准规范,PHP PSR标准规范

    MVC文件上传文件限制 最近想实现MVC中文件上传限制,总觉得有便利的方法,找了半天就找到加属性accept Android 异步Http框架简介和实现原理 在前几篇文章中 [原创] RT7 Lite ...

最新文章

  1. 刷完EMNLP 2021论文列表,我们挑出了这8篇预训练相关必读论文
  2. python多进程和多线程一起使用_Python3多进程与多线程区别及使用(2.线程)
  3. activemq网络桥接_ActiveMQ –经纪人网络解释–第5部分
  4. 前端学习(3057):vue+element今日头条管理-回顾
  5. php的Apa红灯_macos – 使用自制软件更新php和mysql后的apa...
  6. RocketMQ : MQClientException: producerGroup can not equal DEFAULT_PRODUCER, please specify another
  7. Clojure 学习入门(7)- 连接mysql
  8. 不可忽视的IT运维管理
  9. 超标量处理器的分支预测
  10. matlab怎样批量裁剪图片大小,wps 批量调整图片大小 宏
  11. GOOGLE:单一模式背后
  12. Moore型状态机和Mealy型状态机的区别以及各自Verilog的实现细节:为什么Moore型状态机需要多一个状态?怎么选择用哪一种状态机?
  13. 网络百科——网络接口卡
  14. eSPI自学笔记(一):前言和简介
  15. zip文件类型如何恢复系统默认值--右键->打开方式中 无 “资源管理器”选项
  16. RabbitMQ第五个实操小案例——主题交换机(TopicExchange)
  17. 数学速算法_适合小学三、四年级的心算法,再“笨”的学生,也不用列竖式
  18. 小米6手机投屏到wins 8.1电脑上的软件——scrcpy的安装与使用教程
  19. 【毕业设计_课程设计】在线免费小说微信小程序的设计与实现(源码+论文)
  20. 安装Oracle 11g报错 This is a prerequisite condition to test whether sufficient total swap space is avail

热门文章

  1. Linux学习总结(三)之 putty,xshell远程连接及密钥认证篇
  2. Java中String字符串toString()、String.valueOf()、String强转、+ 的区别
  3. JSON 常量详情参考 (内含对中文不转义的参数)
  4. 微信公众平台开发新手教程(图文具体解释)
  5. FineReport——JS二次开发(局部刷新)
  6. webservice(基础)
  7. unicode and utf-8
  8. 多台工作站搭建MPI并行环境
  9. 计算机桌面图标有背影,桌面图标有背影怎么解决
  10. [MATLAB调试笔记]Update the electric field in one step