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, ...
随机推荐
- 【IDA*】codevs 2495:水叮当的舞步
2495 水叮当的舞步 题目描述 Description 水叮当得到了一块五颜六色的格子形地毯作为生日礼物,更加特别的是,地毯上格子的颜色还能随着踩踏而改变. 为了讨好她的偶像虹猫,水叮当决定在地毯上 ...
- Understanding Convolution in Deep Learning
Understanding Convolution in Deep Learning Convolution is probably the most important concept in dee ...
- [百度空间] [转]DLL地狱及其解决方案
DLL地狱及其解决方案 原作者:Ivan S Zapreev 译者:陆其明概要 本文将要介绍DLL的向后兼容性问题,也就是著名的“DLL Hell”问题.首先我会列出自己的研究结果,其中包括其它一些研 ...
- [工作积累] Android system dialog with native callback
JNI: invoke java dialog with native callback: store native function address in java, and invoke nati ...
- nginx 多站点配置方法集合(转)
关于nginx的多站设置,其实和apache很相似,假设我们已经有两个域名,分别是:www.websuitA.com和www.websuitB.com.并且这两个域名已经映射给了IP为192.168. ...
- Struct2、Hibernate3、Spring3框架搭建实战(转)
采用目前最新的struts-2.3.1.2.hibernate3.6.10.Final.spring-framework-3.1.1.RELEASE开发包,以及eclipse-jee-indigo-S ...
- 1024: [SCOI2009]生日快乐
暴力题,N<=10,没注意到平均分,读题真是.. 我们对于一个矩形分成两块进行搜.然后求较大值. ans=min(ans,max(dfs(x,y/n*i,i),dfs(x,y/n*(n-i),n ...
- Unity--截取屏幕任意区域
原地址:http://blog.csdn.net/tanmengwen/article/details/8501612 void Update () { if(Input.GetKeyDown(Key ...
- Rake::TestTask 介绍
Rake::TestTask 介绍 通常我们创建一个新的项目的时候,会建立一个test或者spec的文件夹来存放测试的文件,运行这些测试需要单独的命令,比如在项目目录下执行rspec .或者ruby ...
- POJ 2153 Rank List (map映射)
水题,竟然花了那么多时间...主要是不知道为什么,明明在本机上编译过去了,但是用c++提交却编译错误...最后用g++提交AC 题意:给出n个学生的名字,然后给出m个测验. 每个测验给出n个学生的分数 ...