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, ...
随机推荐
- apple开发者账号申请
1. 登陆appleID. 2. 进入 Your Account 3. 在Account Summary 中的MemberShips中选择第一个(界面大概如下) 4.选择后进入下图. 5. yes ...
- jquery 常用组件的小代码
获得所有复选框的值 function getAllValue() { var str=""; $("input[name='checkbox']:checkbox&quo ...
- Auto Layout - 使用总结
1.要开始使用AutoLayout,请先设置要约束的view的translatesAutoresizingMaskIntoConstraints属性为NO.在xib或者sb中勾选Use Auto La ...
- 一道PK赛题
Problem Description I think that you might have played the traditional Chinese ring game: The Chines ...
- Codeforces Round #253 (Div. 2) D题
题目大意是选出一个其他不选,问问最大概率: 刚开始想到DP:F[I][J][0]:表示从 前I个中选出J个的最大值, 然后对于F[I][J][1]=MAX(F[I-1][J][1],F[I-1][J- ...
- HTTP message vs SOAP message
HTTP Message / SOAP Message HTTP Message ===>包括Request, Response.我们主要关注的是 HTTP Message,这样子包含的范围会更 ...
- 停止使用循环 教你用underscore优雅的写代码
你一天(一周)内写了多少个循环了? var i; for(i = 0; i < someArray.length; i++) { var someThing = someArray[i]; ...
- poj 3903 Stock Exchange(最长上升子序列,模版题)
题目 #include<stdio.h> //最长上升子序列 nlogn //入口参数:数组名+数组长度,类型不限,结构体类型可以通过重载运算符实现 //数组下标从1号开始. int bs ...
- iOS视频压缩
// // ViewController.m // iOS视频测试 // // Created by apple on 15/8/19. // Copyright (c) 2015年 tqh. All ...
- WCF分布式开发步步为赢(6):WCF服务契约继承与分解设计
上一节我们学习了WCF分布式开发步步为赢(5)服务契约与操作重载部分.今天我们来继续学习WCF服务契约继承和服务分解设计相关的知识点.WCF服务契约继承有何优势和缺点?实际项目里契约设计有什么原则和依 ...