博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 4465 Candy
阅读量:6811 次
发布时间:2019-06-26

本文共 714 字,大约阅读时间需要 2 分钟。

式子是很好推的,只是当时不知道如何去控制精度问题。要知道P的N次方是很小的一个数。

最后的式子很简单的

for(int i=0;i<=n;i++)ans+=(n-i)*C(n+i,i)*(p^n*(1-p)^i + (1-p)^n*p^i);

又可以递推出C。  C(n+1,i+1)=C(n,i)*(n+1)/(i+1)...

然后因为直接算出P的N次方会很小,所以将这个数分解。分N次乘上去。

 

#include 
#include
#include
using namespace std;double solve(int n,double p){ double ans=p*n;//因为最后还要去看看第一个箱子,所以最后还是得乘以一个P的 double last=1;//递推的一个中间变量 for(int i=1;i<=n;i++) { last*=(n+i)*(1-p)/i*p;//因为每个中间式子都要乘以N个P,所以每个新生成的中间式子都要补一个P ans+=last*(n-i); ans*=p; } return ans;}int main(){ int n; double p; int CASE=1; while(scanf("%d%lf",&n,&p)!=EOF) { printf("Case %d: %lf\n",CASE++,solve(n,p)+solve(n,1-p)); } return 0;}

 

 

转载地址:http://upwzl.baihongyu.com/

你可能感兴趣的文章
咪咕视讯王斌:5G时代的泛娱乐产业生长
查看>>
VC中的正则表达式使用
查看>>
3PAR公司推出第三代虚拟存储阵列
查看>>
对待棘手bug,新手与大牛的差距在哪里?
查看>>
中企通信发布DaaS桌面云解决方案 企业迎来真正“桌面即服务”
查看>>
英国风力发电已比核能便宜
查看>>
《并行计算的编程模型》一2.6.3 AM Ping-Pong示例
查看>>
Kronos银行木马的前世今生
查看>>
武汉电博会看点 daydao电商云ERP亮相
查看>>
浪潮李辉:SDS,承载应用和技术两极蔓延式创新
查看>>
机会与危险并存 存储业希望依旧
查看>>
GE以9.15亿美元收购ServiceMax 以完善工业互联网平台
查看>>
Windows Shellcode学习笔记——通过VirtualProtect绕过DEP
查看>>
Apache httpd 出现多个漏洞 可能引发DoS攻击 2.2.x及2.4.x版本受影响
查看>>
ARM计划将四核心CPU引入磁盘驱动器
查看>>
智慧城市数量年内超500个 这两大难题不得不解
查看>>
《中国人工智能学会通讯》——10.27 提出的方法
查看>>
大数据重点不在于“大”
查看>>
普元发布Primeton DI 6.1.0送新鲜:为用户终极体验而战
查看>>
解读固态磁盘性能发展之现状
查看>>