传送门

生成函数好题。

题意简述:一个袋子里有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. Android 单元测试四大组件Activity,Service,Content Provider , Broadcast Receiver

    先mark, 后补充 https://blog.csdn.net/stevenhu_223/article/details/14054313 https://www.jianshu.com/p/3aa ...

  2. H5入门

    1.基本骨架 <!DOCTYPE html> <html> <head><title>标题</title><meta charset= ...

  3. 微信小程序开发-rem转换rpx小工具

    实现原理: 对样式进行格式化,然后根据 “rem” 进行拆分,这样就会拆分成一个数组 [str1,str2,str3...,str6], 除了最后一个元素,前边的元素都会以 “rem” 样式的数值结尾 ...

  4. 退出vim

    不保存修改的退出方法: 先按esc,再依次按下:q!,最后按回车. 保存修改的退出方法: 先按esc,再依次按下:wq,最后按回车.

  5. Delphi:基于jcl的Bugsplat Crash收集单元

    //BugSplat Crash模拟.net数据封装 unit uBugSplat; interface uses Windows, SysUtils, Classes, StrUtils, Shel ...

  6. day 27 Python中进程的操作

    进程的创建和结束: multiprocess模块: multiprocess不是一个模块而是python中一个操作.管理进程的包 分为四个部分:创建进程部分,进程同步部分,进程池部分,进程之间数据共享 ...

  7. 故障处理分析:华为5885v3 cable/ Interconnect (LEFT Panel)

    故障现象: 处理结果: 1.重新把插左前面板,重启,故障消失.

  8. CORBA简介

    使用.NET开发corba应用 一. 什么是IIOP.NET IIOP.NET 是通过使用基于corba的IIOP支持.NET.javaEE和corba组件实现无缝互操作的技术.如图1.1所示,这种解 ...

  9. 如何使用queue_delayed_work函数

    本文转自如何使用queue_delayed_work函数 1. delayed_workqueue主要用在需要延迟处理任务的驱动中,这些驱动的特性主要是不能使用中断. delayed_workqueu ...

  10. 抽屉效果几大github第三方库

    首先感谢董铂然博客园,鄙人收藏学习之用,如有朋友看到.有需要请直接前往董铂然博客园本文, 请点击查看原文 在公司项目新版本方案选择中,对主导航中要使用的抽屉效果进行了调研.主要原因是旧的项目中所用的库 ...