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