zoukankan      html  css  js  c++  java
  • 【Luogu】P3239亚瑟王(概率DP)

      题目链接

      请看luogu第一篇题解

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<cctype>
    #include<cstdlib>
    #include<cmath>
    #define maxn 300
    using namespace std;
    
    double f[maxn][maxn];
    double g[maxn];
    double p[maxn];
    double s[maxn];
    
    int main(){
        int T;    scanf("%d",&T);
        while(T--){
            memset(f,0,sizeof(f));
            memset(g,0,sizeof(g));
            int n,m;    scanf("%d%d",&n,&m);
            for(int i=1;i<=n;++i)    scanf("%lf%lf",&p[i],&s[i]);
            g[1]=1-pow(1-p[1],m);
            f[1][0]=1-g[1];    f[1][1]=g[1];
            for(int i=2;i<=n;++i)
                for(int j=0;j<=min(i,m);++j){
                    if(j)    f[i][j]+=f[i-1][j-1]*(1-pow(1-p[i],m-j+1));
                    if(i^j)    f[i][j]+=f[i-1][j]*pow(1-p[i],m-j);
                }
            for(int i=2;i<=n;++i)
                for(int j=0;j<=min(i-1,m);++j)    g[i]+=f[i-1][j]*(1-pow(1-p[i],m-j));
            double ans=0;
            for(int i=1;i<=n;++i)    ans+=g[i]*s[i];
            printf("%.10lf
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    常用的JS代码
    静态类相关
    并查集
    RMQ
    模考题line
    递归模考题 集合
    KMP
    快速幂
    读现代软件工程之构建之法的疑问
    实验二
  • 原文地址:https://www.cnblogs.com/cellular-automaton/p/8921951.html
Copyright © 2011-2022 走看看