zoukankan      html  css  js  c++  java
  • 概率dp——BAPC2019 L

    dp[i]表示一个人在前i轮死亡的概率
    一个人在第i轮胜出的概率=(其余在前i死亡的概率-其余人在前i-1轮死亡的概率)*这个人前i轮不死的概率

    pass:感觉正解有点奇怪

    /*
    dp[i]表示一个人在前i轮死亡的概率
    一个人在第i轮胜出的概率=(其余在前i死亡的概率-其余人在前i-1轮死亡的概率)*这个人前i轮不死的概率 
    */
    #include<bits/stdc++.h>
    using namespace std;
    #define N 2005
    typedef double db;
    int n,k;
    db C[N][N],dpp[N],dp[N],p;
    void init(){
        C[0][0]=1;
        for(int i=0;i<N;i++){
            C[i][0]=C[i][i]=1;
            for(int j=1;j<i;j++)
                C[i][j]=C[i-1][j-1]+C[i-1][j];
        }
    }
    
    int main(){
        init();
        cin>>n>>k>>p;     
        for(int i=k;i<=1000;i++)
            for(int j=0;j<k;j++)
                dpp[i]+=C[i][j]*pow(p,i-j)*pow(1-p,j);
        
        for(int i=k;i<=1000;i++)
            dp[i]=dp[i-1]+C[i-1][k-1]*pow(p,i-k)*pow(1-p,k);
        db sum=0;
        for(int i=k;i<=1000;i++)//前k轮游戏结束的概率 
            sum+=dpp[i]*(pow(dp[i],n-1)-pow(dp[i-1],n-1));
            
        cout<<1-sum*n;
        //printf("%.10lf
    ",ans); 
    }
  • 相关阅读:
    linux 网络不通问题排查
    linux下挂载U盘
    git 详细教程网址
    字符串的全排列和组合算法
    D-BUS详细分析
    linux socket编程之TCP与UDP
    Linux下的 .o、.a、.so文件
    Fiddler HTTPS指南
    nm指令
    无法使用xcode打出ipa包的解决方法
  • 原文地址:https://www.cnblogs.com/zsben991126/p/12541737.html
Copyright © 2011-2022 走看看