zoukankan      html  css  js  c++  java
  • CF-1265E Beautiful Mirrors(期望dp)

    题意

    有n面镜子,每面镜子都有说美丽与不美丽的概率,每天问一面镜子,如果中途的镜子问到是不美丽就要从头开始,求问到最后一面镜子是美丽需要用多少天。

    思路

    dp[i]为到第i面镜子所用的时间
    dp[i]=(dp[i-1]+1) * (pi/100) + (dp[i-1]+1+dp[i]) * (1-pi/100)
    dp[i]=(dp[i-1]+1) * (100/pi);

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    const int maxx = 2e5+10;
    const int mod = 998244353;
    LL p[maxx],dp[maxx];
    LL quick(LL a,LL b)
    {
        LL res=1;
        while(b)
        {
            if(b&1)res=(res*a)%mod;
            b>>=1;
            a=(a*a)%mod;
        }
        return res;
    }
    int main()
    {
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%lld",&p[i]);
        //dp[i]=(dp[i-1]+1)*(pi/100)+(dp[i-1]+1+dp[i])*(1-pi/100)
        for(int i=1;i<=n;i++)
            dp[i]=(dp[i-1]+1)*100%mod*quick(p[i],mod-2)%mod;
        printf("%lld
    ",dp[n]);
        return 0;
    }
    
  • 相关阅读:
    WindowsForm:百科
    App-应用程式:百科
    ASP.NET:目录
    ASP.NET:百科
    操作平台:.NET
    DB-触发器:百科
    DB-DatabaseLink:百科
    5090 众数
    计数排序
    归并排序
  • 原文地址:https://www.cnblogs.com/HooYing/p/12000327.html
Copyright © 2011-2022 走看看