cf1265e-solution

CF1265E Solution

link

题解在说啥???

期望步数不就是期望轮数乘上每轮的期望步数

期望轮数就是这轮结束的概率的倒数即 1i=1npi

每轮期望步数根据期望的线性性就是 i=1ni(1pi)j=1i1pj

也就是步数乘上在这里停下来的概率,停下来的概率就是此处不通过,前面全通过的概率相乘。

期望步数还要加上一个 ni=1npi,就是到达终点的步数

#include <bits/stdc++.h>
#define LL long long
#define sl(n) strlen(n)
#define endline puts("")
#define pii pair<int , int>
#define pr_q priority_queue
#define DEBUG puts("DEBUG.")
using namespace std;
const int N = 2e5 + 10;
const int inf = ~0u >> 2;
const int p = 998244353;
int qpow(int a , int k)
{
	int res = 1;
	while(k)
	{
		if(k & 1)
			res = 1ll * res * a % p;
		a = 1ll * a * a % p;
		k >>= 1;
	}
	return res;
}
const int inv100 = qpow(100 , p - 2);
int n,pp[N],prd[N];
int main()
{
	cin >> n;
	prd[0] = 1;
	for(int i = 1;i <= n;i++)
		scanf("%d" , pp + i),pp[i] = 1ll * pp[i] * inv100 % p,prd[i] = 1ll * prd[i - 1] * pp[i] % p;
	int round = qpow(prd[n] , p - 2);
	int step = 0;
	for(int i = 1;i <= n;i++)
		step = (step + 1ll * i * prd[i - 1] % p * (1 - pp[i] + p) % p) % p;
	step = (step + 1ll * n * prd[n] % p) % p;
	cout << 1ll * round * step % p << endl;
	return 0;
}

posted @   iorit  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示