zoukankan      html  css  js  c++  java
  • HDU 5502

    枚举所有的最大值盒子里糖果为K的情况,对于位置p,dp[p]为p以前的,第p个操作为抽到不是蓝球里的情况,盒子里最多糖果为k的情况的概率。而到p这个位置,可以有连续最多k-1(因为第k个操作必须为抽到不是蓝球,注意,在第一次操作前桌子上已有一粒糖)个,也可以是0,1,2,3,4....,所以维护这样的一段和,使它可以转移到第p个操作。

    其实,我觉得应该把题解截下来:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    
    double dp[1550];
    double power[1550];
    double ans[1550];
    double pre[1550];
    
    
    int main(){
    	int T,n;
    	double p,q;
    	scanf("%d",&T);
    	while(T--){
    		scanf("%d%lf%lf",&n,&p,&q);
    		power[0]=1;
    		double pro0=q/p;
    		double pro1=(p-q)/p;
    		for(int i=1;i<=n+1;i++){
    			power[i]=power[i-1]*pro0;
    		}
    		ans[0]=0;
    		n++;
    		for(int i=1;i<=n;i++){
    			dp[0]=pre[0]=1;
    			for(int j=1;j<=n;j++){
    				double now=pre[j-1];
    				if(j-1-i>=0) now-=pre[j-1-i]*power[i];
    				dp[j]=now*pro1;
    				pre[j]=pre[j-1]*pro0+dp[j];
    			}
    			ans[i]=dp[n];
    		}
    		double e=0;
    		for(int i=n;i>=1;i--){
    			e+=(ans[i]-ans[i-1])*i;
    		}
    		e/=pro1;
    		printf("%.3lf
    ",e);
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    centos7搭建kvm
    python脚本与shell脚本的结合应用
    shell脚本常用命令组合
    服务器硬盘损坏恢复过程
    linux grup引导进入单用户下
    mysql 数据库设计查询规范
    mysql 8.0 远程连接问题
    linux新加硬盘的操作
    linux 添加硬盘到/home 目录
    linux设置最大连接数
  • 原文地址:https://www.cnblogs.com/jie-dcai/p/4886393.html
Copyright © 2011-2022 走看看