CF1264C Beautiful Mirrors with queries
题目描述
Creatnx 有 $n$ 面镜子,编号从 $1$ 到 $n$。每天,Creatnx 都会问一面镜子:“我美吗?”第 $i$ 面镜子会以概率 $\frac{p_i}{100}$ 告诉 Creatnx 他很美,其中 $1 \le i \le n$。
有些镜子被称为“检查点”。最初,只有第 $1$ 面镜子是检查点,并且它始终是检查点。
Creatnx 会依次询问镜子,从第 $1$ 面镜子开始。每天,如果他询问第 $i$ 面镜子,会有两种情况:
- 第 $i$ 面镜子告诉 Creatnx 他很美。如果 $i = n$,Creatnx 就会停止并变得开心;否则,第二天他会继续询问第 $i+1$ 面镜子;
- 否则,Creatnx 会感到沮丧。第二天,他会从编号不大于 $i$ 的最大检查点重新开始询问。
随着时间推移,一些镜子会变成新的检查点,一些镜子则不再是检查点。你会得到 $q$ 个操作,每个操作由一个整数 $u$ 表示:如果第 $u$ 面镜子不是检查点,则将其设为检查点;否则,将其取消检查点资格。
每次操作后,你需要计算 Creatnx 变得开心所需的期望天数。
每个答案都需要对 $998244353$ 取模。形式化地,设 $M = 998244353$。可以证明答案可以表示为最简分数 $\frac{p}{q}$,其中 $p$ 和 $q$ 是整数且 $q \not\equiv 0 \pmod{M}$。输出等于 $p \cdot q^{-1} \bmod M$ 的整数。换句话说,输出一个整数 $x$,满足 $0 \le x < M$ 且 $x \cdot q \equiv p \pmod{M}$。
输入格式
第一行包含两个整数 $n$、$q$($2 \leq n, q \le 2 \cdot 10^5$)——镜子的数量和操作次数。
第二行包含 $n$ 个整数:$p_1, p_2, \ldots, p_n$($1 \leq p_i \leq 100$)。
接下来的 $q$ 行,每行包含一个整数 $u$($2 \leq u \leq n$)——表示一次操作。
输出格式
输出 $q$ 个数字,每个数字表示每次操作后的答案,对 $998244353$ 取模。
说明/提示
在第一个测试中,第一次操作后,第 $1$ 和第 $2$ 面镜子都是检查点。Creatnx 会一直询问第 $1$ 面镜子直到它说他很美,然后会一直询问第 $2$ 面镜子直到它说他很美,因为第 $2$ 面镜子是检查点。之后,他就会变得开心。每面镜子说他很美的概率都是 $\frac{1}{2}$。因此,直到一面镜子说他很美的期望天数是 $2$,答案就是 $4 = 2 + 2$。
由 ChatGPT 4.1 翻译