zoukankan      html  css  js  c++  java
  • [POJ3682]King Arthur's Birthday Celebration[期望DP]

    也许更好的阅读体验
    (mathcal{Description})

    每天抛一个硬币,硬币正面朝上的几率是p,直到抛出k次正面为止结束,第(i)天抛硬币的花费为(2i-1),求出抛硬币的天数的期望和花费的期望。

    (mathcal{Solution})

    该题为双倍经验题,具体做法请看

    收集邮票 (原谅我的懒惰,但这可以认为是一样的题了)

    这里我们求(f)数组的过程将概率改为(p),求(g)时,将里面的(f[i])(f[i+1])全部乘以2即可

    注意 本题输出有限制!!!不然会一直莫名其妙的WA,还有,编译器请选择(C++)

    (mathcal{Code})

    /*******************************
    Author:Morning_Glory
    LANG:C++
    Created Time:2019年07月22日 星期一 20时27分43秒
    *******************************/
    #include <cstdio>
    #include <fstream>
    using namespace std;
    const int maxn = 1005;
    int n,fir;
    double p;
    double f[maxn],g[maxn];
    int main()
    {
    	while (true){
    		scanf("%d",&n);
    		if (!n)	return 0;
    		if (fir)	printf("
    ");
    		++fir;
    		scanf("%lf",&p);
    		f[n]=g[n]=0;
    		for (int i=n-1;i>=0;--i)	f[i]=f[i+1]+1/p;
    		for (int i=n-1;i>=0;--i)	g[i]=(1+2*f[i])/p-2*f[i]+g[i+1]+2*f[i+1];
    		printf("%.3lf %.3lf",f[0],g[0]);
    	}
    	return 0;
    }
    

    本篇博客亦被收进期望总结

    如有哪里讲得不是很明白或是有错误,欢迎指正
    如您喜欢的话不妨点个赞收藏一下吧

  • 相关阅读:
    使用JSONPath
    JSON 返回值JSONPath Syntax
    IntelliJ IDEA 打包Maven 构建的 Java 项目
    JMeter(7) 优化判断返回类型和返回值
    Windows copy
    Windows del
    Windows exit
    Windows netsh
    Windows start
    Windows taskkill
  • 原文地址:https://www.cnblogs.com/Morning-Glory/p/11228459.html
Copyright © 2011-2022 走看看