zoukankan      html  css  js  c++  java
  • [CF1265E] Beautiful Mirrors

    [CF1265E] Beautiful Mirrors - 概率dp

    Description

    (n) 个镜子,编号从 (1)(n)。每天都会询问一面镜子,第 (i) 个镜子有 (p_i) 的概率回答漂亮。

    如果第 (i) 面镜子回答漂亮,如果 (i=n) 则游戏结束,否则明天询问 (i+1)

    如果第 (i) 面镜子回答不漂亮,明天从 (i=1) 开始。

    求游戏结束的期望天数。

    Solution

    (f_i) 表示从 1 升级升到 i 的天数期望

    转移时考虑从 i-1 升到 i 的过程

    有 p 的概率成功升级,此时的升级代价是 1

    有 (1-p) 的概率升级失败,此时的升级代价则是 (1+f_i)

    化简后顺序递推即可

    #include <bits/stdc++.h>
    using namespace std;
    
    #define int long long
    const int N = 1000005;
    const int mod = 998244353;
    
    int p[N], n, f[N];
    
    int qpow(int p, int q)
    {
        return (q & 1 ? p : 1) * (q ? qpow(p * p % mod, q / 2) : 1) % mod;
    }
    
    int inv(int p)
    {
        return qpow(p, mod - 2);
    }
    
    signed main()
    {
        ios::sync_with_stdio(false);
    
        cin >> n;
    
        for (int i = 1; i <= n; i++)
            cin >> p[i];
    
        for (int i = 2; i <= n + 1; i++)
            f[i] = 100 * inv(p[i - 1]) % mod * (1 + f[i - 1]) % mod;
    
        cout << f[n + 1] << endl;
    }
    
  • 相关阅读:
    Linux下目录的权限详解
    Linux下mknod详解
    迅雷精简版-无广告
    PotPlayer一款简洁好用的播放器
    Linux 信号signal处理机制
    Kruskal算法求最小生成树
    Prim算法求权数和,POJ(1258)
    Prim算法求最大权,POJ(2485)
    Prim算法
    DP找最优配置,(POJ1018)
  • 原文地址:https://www.cnblogs.com/mollnn/p/14469255.html
Copyright © 2011-2022 走看看