下次再见
题目背景
> 在逝去的季节中 遗失的宝藏
>
> 是缺失一角的 珍贵拼图
>
> 就像白雪在街道上 温柔地堆积的样子
>
> 也将回忆相簿的空白 全部填满吧
题目描述
有一首由 $n$ 个圆圈组成的乐曲.玩家会 **等概率随机选定** $1 \sim n$ 中的一个位置开始游玩,顺序点击那个位置和之后的所有圆圈来完成乐曲的演奏.
对于每个圆圈的点击精准度存在四种判定,分别是 $\texttt{GREAT,OK,MEH,MISS}$.
存在一种机制:当连续 $K$ 次 $\texttt{MISS}$ 后,玩家会强制退出游戏;否则玩家会一直游玩直到点击完所有圆圈.
现在给出对于每个圆圈,玩家达成每一种判定的概率:对于第 $i$ 个圆圈,判定 $\texttt{GREAT},\texttt{OK},\texttt{MEH},\texttt{MISS}$ 的概率分别为 $P_{i,0}/100,\ P_{i,1}/100,\ P_{i,2}/100,\ P_{i,3}/100$.保证 $P_{i,0}+P_{i,1}+P_{i,2}+P_{i,3}=100$.
得分是衡量整段演奏的指标,它的计算方式是,假设整段演奏中出现了 $a$ 次 $\texttt{GREAT}$,$b$ 次 $\texttt{OK}$,$c$ 次 $\texttt{MEH}$,$d$ 次 $\texttt{MISS}$,那么演奏的得分为 $300a+100b+50c$.
你需要回答玩家得分的期望.
说明:如果强制退出游戏,那么计算得分时,整段演奏包括从开始的点击到最后一次判定 $\texttt{MISS}$ 的点击为止所有的点击.
在部分数据大小范围较大的测试点上,为了减小输入输出的交互量,我们采用了不同的输入方式.您需要在您的 c++ 代码中加入题目附件中提供的数据生成器.建议在阅读接下来的内容前先浏览一下生成器中提供的函数名称,这可以帮助您更好地理解输入格式.
输入输出格式
输入格式
第一行包含两个整数 $Type,seed$.
当 $Type=1$ 的时候,您需要在读入 $seed$ 之后调用 `Ge.init(seed)` 来设置数据生成器的种子.否则您可以忽视 $seed$.
第二行包括两个整数 $n,K$.
接下来分两种情况:
- $Type=0$.接下来 $n$ 行,每行包括 $4$ 个整数,表示 $P_{i,0}\ P_{i,1}\ P_{i,2}\ P_{i,3}$.
- $Type=1$.接下来没有任何输入.您第 $i$ 次调用 ``Ge.get(a,b,c,d)`` 之后,$a,b,c,d$ 的值分别为 $P_{i,0}\ P_{i,1}\ P_{i,2}\ P_{i,3}$.
输出格式
一行一个整数,表示答案 $\bmod\ 998244353$.
说明:可以证明,答案能够表示为 $p/q$.您需要输出 $q$ 在 $\bmod\ 998244353$ 意义下的逆元和 $p$ 的乘积对 $998244353$ 取模后的结果.
输入输出样例
输入样例 #1
0 0
4 2
10 20 20 50
20 10 20 50
20 20 10 50
20 50 10 20
输出样例 #1
530317523
输入样例 #2
0 280114129
5 5
36 23 30 11
0 52 25 23
14 61 23 2
10 41 37 12
0 12 78 10
输出样例 #2
898420164
输入样例 #3
1 114
5141 919
输出样例 #3
800181066
说明
|测试点编号|数据范围|特殊性质|
|:-:|:-:|:-:|
|$1\sim 2$|$n\le 5$||
|$3\sim 4$|$n\le 50$||
|$5\sim 6$|$n\le 10^3$||
|$7\sim 8$|$n\le 10^5,K\le 10^3$||
|$9\sim 10$||$A$|
|$11\sim 12$||$B$|
|$13\sim 15$|$n,K\le 5\times 10^5$||
|$16\sim 20$||
$A$:保证所有位置的 $P_{i,3}$ 相等.
$B$:保证对于所有位置,$P_{i,3}$ 等于 $0$ 或等于 $100$.
---
对于编号在 $1\sim 15$ 的测试点,$Type=0$;对于编号在 $16\sim 20$ 的测试点,$Type=1$.
保证,对于全部数据,$0\le P_{i,0/1/2/3}\le 100$,$1\le K\le n\le 5\times 10^6$,$Type=0/1$,$1\le seed\le 10^9$.