HDU 1521 排列组合 指数型母函数
| Time Limit: 1000MS | Memory Limit: 32768KB | 64bit IO Format: %I64d & %I64u |
Description
Input
Output
Sample Input
Sample Output
Source
指数型生成函数公式(其中一个):
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
#define M 15
double fac[M];
void fun()//求n的阶乘 函数
{
int i;
fac[]=;
for(i=;i<=;i++)
fac[i]=i*fac[i-];
}
int main()
{
int n,m;
int z[M];
double a[M],b[M];
fun();
while(scanf("%d%d",&n,&m)!=EOF)
{
int i,j,k;
for(i=;i<n;i++)
cin>>z[i];
memset(a,,sizeof(a));
memset(b,,sizeof(b));
for(i=;i<=z[];i++)
{
a[i]=1.0/fac[i];
}
for(i=;i<n;i++)
{
for(j=;j<=m;j++)
for(k=;k<=z[i]&&k+j<=m;k++)//2个条件:1个k<=z[i]还有为了防止k>=10 和防止k+j>M
{
b[k+j]+=(a[j]*1.0/fac[k]);//应该除以fac[k]
}
for(j=;j<=m;j++)
{
a[j]=b[j];
b[j]=;
}
} printf("%.0lf\n",a[m]*fac[m]);//或者前面加上头文件<math.h> 然后输出printf("%d\n",(int)(floor(a[m]*fac[m]+0.5)));也是对的 ;%.0lf已经四舍五入了,所以用这个就显得特别简单 或者printf("%.0lf\n",floor(a[m]*fac[m]+0.5));或者printf("%d\n",(int)(a[m]*fac[m]+0.5)); } return ;
}
指数阶一般求解的问题:已知有n种颜色的球,第1种X1个,第2种X2个,第3种X3个。。。求从中取m个的方案数(组合数)。
公式中的ak/k!就是所求的组合数,ak为排列数。
只要把求系数的时候每个都相应的 除以i的阶乘即可
HDU 1521 排列组合 指数型母函数的更多相关文章
- HDU 1521 排列组合 (母函数)
题目链接 Problem Description 有n种物品,并且知道每种物品的数量.要求从中选出m件物品的排列数.例如有两种物品A,B,并且数量都是1,从中选2件物品,则排列有"AB&qu ...
- hdu 1521 排列组合 —— 指数型生成函数
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1521 标准的指数型生成函数: WA了好几遍,原来是多组数据啊囧: 注意精度,直接强制转换(int)是舍去小 ...
- hdu1521 排列组合(指数型母函数)
题意: 有n种物品,并且知道每种物品的数量ki.要求从中选出m件物品的排数. (全题文末) 知识点: 普通母函数 指数型母函数:(用来求解多重集的排列问题) n个元素,其中a1,a2, ...
- Hdu 1521 排列组合
a1 n1 a2 n2 ... ak nkn=n1+n2+...+nk从n个数中选r个排列(不是组合噢)// 指数型母函数// 模板#include <iostream> #include ...
- hdu1521 排列组合 指数型母函数模板题
排列组合 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- hdu1521:排列组合---指数型母函数
题意: n种元素,每种有 ni个,选出 m 个的排列有多少种 题解: 指数型母函数的裸题 x^n 项的系数为 an/n!.... 代码如下: #include <iostream> #i ...
- hdu 1521 排列组合【指数型生成函数】
根据套路列出式子:\( \prod_{i=1}^{n}\sum_{j=0}^{c[i]}\frac{x^j}{j!} \),然后暴力展开即可 #include<iostream> #inc ...
- hdu 4535(排列组合之错排公式)
吉哥系列故事——礼尚往来 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tota ...
- hdu 4497(排列组合+LCM和GCD)
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total ...
随机推荐
- 【poj3714】 Raid
http://poj.org/problem?id=3714 (题目链接) 现在才搞平面最近点对..感觉有点尴尬 题意 给出平面上两组点,每组n个,求两组点之间最短距离 Solution1 平面最近点 ...
- POJ2437 Muddy roads
Description Farmer John has a problem: the dirt road from his farm to town has suffered in the recen ...
- jsp学习一
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1&q ...
- sixsix团队“餐站”应用M2阶段发布报告
一.新功能 客户端 搜索功能 我们在M2中实现了对地点的搜索菜品,可以直接在主页页面中的输入框输入用户喜欢的菜品,系统将返回与对应关键字所对应的选择,更加高效直观的满足客户的口味. 菜品图片加载 我们 ...
- IOS基础之 (九) Foundation框架
一NSNumber 类型转换 NSNumber 把基本数据类型包装成一个对象类型.NSNumber之所以可以(只能)包装基本数据类型,是因为继承了NSValue. @20 等价于 [NSNumber ...
- SpringMVC 2.5.6 noMapping
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- uC/OS-II源码分析
uC/OS-II源码分析 首先从main.c文件看起,下面是uC/OS-II main.C的大致流程: main(){ OSInit(); TaskCreate(...); OSStart(); } ...
- MyEclipse------制作通讯录
addinfo.java public class addinfo extends HttpServlet { private String url="jdbc:mysql://localh ...
- 对target="framename"的理解(实现分页的demo)
先上图,说明一下我主要想实现什么功能. 一.演示图 演示首页: 演示内容页(包括按钮切换页+模板内容页): 演示首页到演示内容页的一个演变过程:
- 使用caffe自动测试模型top5的结果
方法很简单,直接在定义网络的prototxt里面最后加一层就可以了. 这一层定义如下 layer { name: "accuracy_5" type: "Accuracy ...