传送门

生成函数好题。

题意简述:一个袋子里有ccc种不同颜色的球,现要操作nnn次,每次等概率地从袋中拿出一个球放在桌上,如果桌上有两个相同的球就立刻消去,问最后桌上剩下mmm个球的概率。


第一眼反应是概率dpdpdp,怼了一波式子之后发现要TTT果断弃掉。

我们考虑推答案的式子吧。

由题可知,ccc种球有mmm个出现奇数次,c−mc-mc−m个出现偶数次。

于是我们对每一种颜色构造生成函数(指数型)

算出来f(x)=Ccm(ex−e−x2)m(ex+e−x2)c−mncf(x)=\frac{C_c^m(\frac{e^x-e^{-x}}2)^m(\frac{e^x+e^{-x}}2)^{c-m}}{n^c}f(x)=ncCcm​(2ex−e−x​)m(2ex+e−x​)c−m​

然后把分子后面两坨二项式展开。

推出来:

f(x)f(x)f(x)的系数=Ccm∑i=0m∑j=0c−m(−1)m−iCmiCc−mje2(i+j)−cnc=Ccm∑i=0m∑j=0c−m(−1)m−iCmiCc−mj(kc)nnc=\frac{C_c^m\sum_{i=0}^m\sum_{j=0}^{c-m}(-1)^{m-i}C_m^iC_{c-m}^je^{2(i+j)-c}}{n^c}=\frac{C_c^m\sum_{i=0}^m\sum_{j=0}^{c-m}(-1)^{m-i}C_m^iC_{c-m}^j(\frac kc)^n}{n^c}=ncCcm​∑i=0m​∑j=0c−m​(−1)m−iCmi​Cc−mj​e2(i+j)−c​=ncCcm​∑i=0m​∑j=0c−m​(−1)m−iCmi​Cc−mj​(ck​)n​

注意pojpojpoj这个OJOJOJ上面不能用lflflf(怒

代码:

#include<iostream>
#include<cstdio>
#define ri register int
using namespace std;
const int K=105;
double C[K][K];
int n,m,c;
inline void init(){
	C[0][0]=1;
	for(ri i=1;i<=100;++i)C[i][i]=C[i][0]=1,C[i][1]=i;
	for(ri i=2;i<=100;++i)for(ri j=2;j<i;++j)C[i][j]=C[i-1][j]+C[i-1][j-1];
}
inline double ksm(double a,int p){double ret=1.0;for(;p;p>>=1,a=a*a)if(p&1)ret=ret*a;return ret;}
int main(){
	init();
	while(scanf("%d",&c),c){
		scanf("%d%d",&n,&m);
		if(((n-m)&1)||m>c||m>n){puts("0.000");continue;}
		double sum=0.0;
		for(ri i=0;i<=m;++i){
			for(ri j=0;j<=c-m;++j){
				double tmp=C[m][i]*C[c-m][j]*ksm((double)(2*(i+j)-c)/(double)c,n);
				if((m-i)&1)sum-=tmp;
				else sum+=tmp;
			}
		}
		printf("%.3f\n",sum/ksm(2.0,c)*C[c][m]);
	}
	return 0;
}

2019.01.02 poj1322 Chocolate(生成函数+二项式定理)的更多相关文章

  1. 2019.01.02 poj3046 Ant Counting(生成函数+dp)

    传送门 生成函数基础题. 题意:给出nnn个数以及它们的数量,求从所有数中选出i∣i∈[L,R]i|i\in[L,R]i∣i∈[L,R]个数来可能组成的集合的数量. 直接构造生成函数然后乘起来f(x) ...

  2. 2019.01.02 NOIP训练 三七二十一(生成函数)

    传送门 生成函数基础题. 题意简述:求由1,3,5,7,9这5个数字组成的n位数个数,要求其中3和7出现的次数都要是偶数. 考虑对于每个数字构造生成函数. 对于1,5,9:∑nxnn!=ex\sum_ ...

  3. 2019.01.02 bzoj3513: [MUTC2013]idiots(fft)

    传送门 fftfftfft经典题. 题意简述:给定nnn个长度分别为aia_iai​的木棒,问随机选择3个木棒能够拼成三角形的概率. 思路:考虑对于木棒构造出生成函数然后可以fftfftfft出两个木 ...

  4. 2019.01.02 bzoj2467: [中山市选2010]生成树(矩阵树定理)

    传送门 矩阵树定理模板题. 题意简述:自己看题面吧太简单懒得写了 直接构建出这4n4n4n个点然后按照题面连边之后跑矩阵树即可. 代码: #include<bits/stdc++.h> # ...

  5. 2019.01.02 bzoj5300: [Cqoi2018]九连环(fft优化高精+快速幂)

    传送门 题意不好描述(自己看样例解释) 首先可以推出一个递推式:fn=fn−1+2fn−2+1f_n=f_{n-1}+2f_{n-2}+1fn​=fn−1​+2fn−2​+1 然后可以构造两个等式: ...

  6. 2019.01.02 洛谷P4512 【模板】多项式除法

    传送门 解析 代码: #include<bits/stdc++.h> #define ri register int using namespace std; typedef long l ...

  7. Tensorflow学习笔记2019.01.22

    tensorflow学习笔记2 edit by Strangewx 2019.01.04 4.1 机器学习基础 4.1.1 一般结构: 初始化模型参数:通常随机赋值,简单模型赋值0 训练数据:一般打乱 ...

  8. Tensorflow学习笔记2019.01.03

    tensorflow学习笔记: 3.2 Tensorflow中定义数据流图 张量知识矩阵的一个超集. 超集:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S ...

  9. AWS re:Invent(2019.01.09)

    时间:2019.01.09地点:北京国际饭店

随机推荐

  1. JS中DOM以及BOM

    一.bom对象 1screen对象 console.log(screen.width);// 屏幕宽度 console.log(screen.height);// 屏幕高度 console.log(s ...

  2. sqlserver2017 +SSMS+ VS2017+SSDT 安装要点及相关组件下载地址

    1.sqlserver2017安装PolyBase需要安装jdk7 ,注意必须是7  jdk10是不行的. 下载地址:http://dl-t1.wmzhe.com/30/30117/jdk_7u_1. ...

  3. 【校招面试 之 C/C++】第33题 C++ 11新特性(四)之STL容器

    C++ 11新增array.forward_list(单链表).unordered_set.unordered_map集中容器.

  4. 865. Smallest Subtree with all the Deepest Nodes 有最深节点的最小子树

    [抄题]: Given a binary tree rooted at root, the depth of each node is the shortest distance to the roo ...

  5. 细说SVN集中式版本控制器

    svn全称Subversion,实现多人开发同一个项目时,对源代码进行管理的工具.在公司里边,一个项目是由多人同时在开发,大家在本地自己电脑开发php代码,完毕后就commit上传给服务器运行.  如 ...

  6. how2j网站前端项目——天猫前端(第一次)学习笔记4

    开始产品页面的学习.项目里面有900多种商品,但是每种商品的布局是一致的:1.产品图片 2.基本信息 3.产品详情 4.累计评价 5.交互.从第一个产品图片开始吧! 一.产品图片 产品图片用到了分类页 ...

  7. 汇编中CMP的作用

    假设现在AX寄存器中的数是0002H,BX寄存器中的数是0003H.执行的指令是:CMP  AX,  BX 执行这条指令时,先做用AX中的数减去BX中的数的减法运算.列出二进制运算式子:      0 ...

  8. 迭代器、生成器 day13

    一 迭代器 迭代器的由来pythone2.2引进的,是一种序列(也是一种数据类型),也是为类对象提供一个序列的入口. for 循环str list tuple dict set 文件句柄可迭代: s ...

  9. 关于PHP程序员技术职业生涯规划 2017年3月5日韩 天峰

    看到很多PHP程序员职业规划的文章,都是直接上来就提Linux.PHP.MySQL.Nginx.Redis.Memcache.jQuery这些,然后就直接上手搭环境.做项目,中级就是学习各种PHP框架 ...

  10. mysql 8小时timeout问题

    MySQL> show variables like '%timeout%'; +--------------------------+-------+ | Variable_name      ...