爬树的甲壳虫(2022蓝桥杯)
当时比赛的时候期望不是多熟练 现在看来这个题还是多简单的
设E(k)表示当前在第k层 到n层期望的时间
当前有两种情况 要么到k+1层 要么回到0层
到k+1层: (1-p)× [E(k+1) + 1]
回到0层: p × [E(0)+1]
E(k)=(1-p)× E(k+1) + 1 + p × E(0)
很明显的一个线性递推式 最后一定是关于E(0)的一个式子
我们分别统计 1前面的系数 和右边E(0) 前面的系数就好
#include<bits/stdc++.h>
using namespace std;
#define lowbit(x) x&(-x)
#define ll long long
const int mod=998244353;
const int maxn=1e5+5;
int n;
ll fast_mi(ll aa,ll bb){
ll res=1;
while(bb){
if(bb&1)res=res*aa%mod;
bb>>=1;
aa=aa*aa%mod;
}
return res;
}
ll p[maxn],pre[maxn];
ll sum1,sum0;
int main(){
cin>>n;
pre[0]=1;
for(int i=1;i<=n;i++){
int a,b;
cin>>a>>b;
p[i]=a*fast_mi(b,mod-2)%mod;
pre[i]=pre[i-1]*(1-p[i]+mod)%mod;
}
for(int i=0;i<=n-1;i++){
sum1=(sum1+pre[i])%mod;
sum0=(sum0+p[i+1]*pre[i]%mod)%mod;
}
cout<<sum1*fast_mi(1-sum0+mod,mod-2)%mod<<endl;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】