传送门

生成函数好题。

题意简述:一个袋子里有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. this.class.getClassLoader().getResourceAsStream与this.class.getResourceAsStream 文件地址获取

    本文部分转自:http://xixinfei.iteye.com/blog/1256291 this.getClass().getClassLoader().getResource("tem ...

  2. Maximum GCD(fgets读入)

    Maximum GCD https://vjudge.net/contest/288520#problem/V Given the N integers, you have to find the m ...

  3. Codeforces Beta Round #69 (Div. 2 Only)

    Codeforces Beta Round #69 (Div. 2 Only) http://codeforces.com/contest/80 A #include<bits/stdc++.h ...

  4. POJ 3169 Layout(差分约束+链式前向星+SPFA)

    描述 Like everyone else, cows like to stand close to their friends when queuing for feed. FJ has N (2 ...

  5. java发送http连接

    原生方式:@转载文章 import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamRead ...

  6. macOS 升级后重装命令行工具的问题

    问题背景 最近升级个人macbook 从 10.13 到 10.14 在终端输入 git 不能用了,发现是重装操作系统后原来的 Command Line Tools 被自动卸载了, 采用 xcode- ...

  7. spring源码分析(一)

    一.首先分析AliasRegistry接口. 1.Alias别名,Registry注册表,AliasRegistry别名注册表接口. 2.共有四个方法,注册别名,判断是否别名,获取别名数组,移除别名. ...

  8. DataInputStream FileInputStream 区别

    DataInputStream是数据输入流,读取的是java的基本数据类型. FileInputStream是从文件系统中,读取的单位是字节. FileReader 是从文件中,读取的单位是字符

  9. vue 内引入jquery

    1.  npm i jquery -- save 2. import $ from 'jquery' window.$ = $ window.jQuery = $ export default $ 这 ...

  10. IIS 域名 带参数 设置重定向

    IIS里面设置重定向后,经常会出现,从百度快照里直接打不开的情况. 可以在IIS里面设置重定向的时候,把参数加上,格式如下: http://www.***.com%S%Q