POJ 1322 Chocolate(母函数)
题目链接:http://poj.org/problem?id=1322
题意:

思路:






double C[N][N];
void init()
{
C[0][0]=1;
int i,j;
for(i=1;i<N;i++)
{
C[i][0]=C[i][i]=1;
for(j=1;j<i;j++) C[i][j]=C[i-1][j-1]+C[i-1][j];
}
}
double Pow(double a,int b)
{
double ans=1;
while(b)
{
if(b&1) ans*=a;
a=a*a;
b>>=1;
}
return ans;
}
int n,m,c;
double cal()
{
double positive[N],negative[N],a[N],b[N];
double temp1,temp2;
int i,j,k;
for(i=0;i<=c;i++) positive[i]=negative[i]=a[i]=b[i]=0;
temp1=Pow(0.5,m);
for(i=0;i<=m;i++)
{
j=i-(m-i);
if((m-i)&1) temp2=-temp1;
else temp2=temp1;
if(j>=0) a[j]+=temp2*C[m][i];
else b[-j]+=temp2*C[m][i];
}
temp1=Pow(0.5,c-m);
for(i=0;i<=c-m;i++)
{
temp2=temp1*C[c-m][i];
for(j=0;j<=m;j++)
{
k=j+i-(c-m-i);
if(k>=0) positive[k]+=temp2*a[j];
else negative[-k]+=temp2*a[j];
}
for(j=0;j<=m;j++)
{
k=-j+i-(c-m-i);
if(k>=0) positive[k]+=temp2*b[j];
else negative[-k]+=temp2*b[j];
}
}
double ans=0;
for(k=1;k<=c;k++)
{
if(n&1) negative[k]=-negative[k];
ans+=C[c][m]*Pow(1.0*k/c,n)*(positive[k]+negative[k]);
}
return ans;
}
int main()
{
init();
Rush(c)
{
if(!c) break;
RD(n,m);
if((n-m)%2||m>c||m>n) puts("0.000");
else if(n==0&&m==0) puts("1.000");
else PR(cal());
}
}
POJ 1322 Chocolate(母函数)的更多相关文章
- POJ 1322 Chocolate
Chocolate Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8245 Accepted: 2186 Speci ...
- poj 1322 Chocolate (概率dp)
///有c种不同颜色的巧克力.一个个的取.当发现有同样的颜色的就吃掉.去了n个后.到最后还剩m个的概率 ///dp[i][j]表示取了i个还剩j个的概率 ///当m+n为奇时,概率为0 # inclu ...
- Solution -「ACM-ICPC BJ 2002」「POJ 1322」Chocolate
\(\mathcal{Description}\) Link. \(c\) 种口味的的巧克力,每种个数无限.每次取出一个,取 \(n\) 次,求恰有 \(m\) 个口味出现奇数次的概率. \( ...
- 经典DP 二维换一维
HDU 1024 Max Sum Plus Plus // dp[i][j] = max(dp[i][j-1], dp[i-1][t]) + num[j] // pre[j-1] 存放dp[i-1] ...
- 专题:DP杂题1
A POJ 1018 Communication System B POJ 1050 To the Max C POJ 1083 Moving Tables D POJ 1125 Stockbroke ...
- poj 动态规划题目列表及总结
此文转载别人,希望自己能够做完这些题目! 1.POJ动态规划题目列表 容易:1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 11 ...
- poj动态规划列表
[1]POJ 动态规划题目列表 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276, 13 ...
- POJ 动态规划题目列表
]POJ 动态规划题目列表 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276, 1322 ...
- poj 动态规划的主题列表和总结
此文转载别人,希望自己可以做完这些题目. 1.POJ动态规划题目列表 easy:1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, ...
随机推荐
- [haoi2009]毛毛虫 树形dp
这道题细节处理不少,但要AC不难: 设以i节点为根节点的子树能形成的最大的毛毛虫长度为f[i],则f[i]=max(f[j])+i节点的孩子数: 答案需要f最大和次大的两个子树合并,而且若合并的位置不 ...
- 【bzoj1004】[HNOI2008]Cards
1004: [HNOI2008]Cards Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2928 Solved: 1754[Submit][Sta ...
- jQuery1.9.1--结构及$方法的工作原理源码分析
jQuery的$方法使用起来非常的多样式,接口实在太灵活了,有点违反设计模式的原则职责单一.但是用户却非常喜欢这种方式,因为不用记那么多名称,我只要记住一个$就可以实现许多功能,这个$简直就像个万能的 ...
- photoshop基础
在Photoshop中,对图像的某个部分进行色彩调整,就必须有一个指定的过程.这个指定的过程称为选取.选取后形成选区. 现在先明确两个概念: 选区是封闭的区域,可以是任何形状,但一定是封闭的.不存在开 ...
- Javascript与Flash通信全解析
原文:https://www.imququ.com/post/39.html Flash已经提供了ExternalInterface接口与JavaScript通信,ExternalInterface有 ...
- JS正则汇总
1.基本定义: \s:用于匹配单个空格符,包括tab键和换行符; \S:用于匹配除单个空格符之外的所有字符; \d:用于匹配从0到9的数字; \w:用于匹配字母,数字或下划线字符; \W:用于匹配所有 ...
- iOS第三方地图-百度地图定位的封装
// // BaiduMapTools.h // baidumapTest // // Created by apple on 15/8/26. // Copyright (c) 2015年 tqh. ...
- java EE 5 Libraries 删掉后怎么重新导入
(1)Add Library 中 MyEclipse Libraries (2)输入 java 即可找到 问题解决.
- Java IO(一)
字节流的两个基类: InputStream OutputStream 字符流的两个基类: Reader Writer Writer 先学习一下字符流的特点. 既然IO流是用于操作数据的,那么数据 ...
- Struts2 Convention插件的使用(1)
刚刚查阅官方文档(convention-plugin.html)并学习了Struts2的Convention插件,文章这里只作为一个笔记,建议大家去看官方文档比较清晰和全面. 需要在项目添加这些包 c ...