P8774 [蓝桥杯 2022 省 A] 爬树的甲壳虫

原题链接

题解

  • \(E_i\) 为树根到高度为 \(i\) 的点的期望用时
  • \(P_i\)\(i-1\)\(i\) 时,掉下去概率

则有
\(E_i=E_{i-1}+1+(1-P_i) \cdot 0+ P_i \cdot E_i\)

式子解读:
当我花一单位时间到i点时,有p的概率掉下去重新来,有1-p的概率保持住了i点

所以
\(E_i = \frac{E_{i-1}+1}{1-p}\)

code

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll mod=998244353;
ll ny(ll x)
{
    ll res=1;
    ll len=mod-2;
    while(len)
    {
        if(len&1)res=res*x%mod;
        x=x*x%mod;
        len>>=1;
    }
    return res;
}
int main()
{
    ll n;
    cin>>n;

    ll e=0;
    for(ll i=1;i<=n;i++)
    {
        ll x,y;
        cin>>x>>y;
        e=(e+1LL)*ny(1LL-x*ny(y)%mod+mod)%mod;
    }

    cout<<e;
    return 0;
}

posted @ 2024-05-22 21:09  纯粹的  阅读(24)  评论(0)    收藏  举报