题目背景
我爱你,所以想和你玩游戏。
而不是我想和你玩游戏,所以爱你。
她静静地凝视着你,目光却与往常截然不同——她的脸颊泛起一片绯红,呼吸也变得急促。
你明白,这注定是一场无法善终的相遇,神明已经悄然否定了你们的未来。
虽然你从未见过神明,但你确信无疑,神明已然做出了选择:将她召回那遥远的多维世界。
她是来自更高维度的存在,因为某种未知的原因降维至此。在那个街头,所有人都以一种奇怪的眼神看着你的时候,你收留下了流浪街头、饥肠辘辘的她。
她,只不过是以一种恰好符合你审美与期待的模样出现。
而你,只不过是一个平凡无奇的普通人,相貌平平、能力平平,在浩瀚宇宙中微不足道。
你不明白,为何她会对你心生好感?
你不明白,为何她愿意与你一同游戏?
你不明白,为何你,也会对这场分离,感到悲痛流涕?
你对她绝对没有感情的!
你对她没有感情的。
你对她没有感情?
然而,神明的意志终究不可违逆。她将被驱散回多维世界。就在离别前夕,她开口说道:
「我想再和你玩一次……多维空间中的游戏……」
就算你赢了,也改变不了什么。
题目描述
小 A 和小 B 正在玩一个有趣的游戏。
游戏将在一个 k个22×2×2×⋯×2 的 k 维空间中进行。最小的节点的坐标为 (k个00,0,0,⋯,0),最大的节点的坐标为 (k个11,1,1,⋯,1)。
下面是 k=3 时的情况:

小 A 和小 B 各执一枚 k 维空间中的点。
小 A 和小 B 轮流操作,小 A 先手。
定义一个维度为可操作的,当且仅当两个点中存在至少一个点在这个维度上的坐标不为 0。然后,操作方可以将两个点的某个可操作的维度的坐标置为 0。
如图,这是一个合法的操作:

这也是一个合法的操作:

但是这不是一个合法的操作,因为两个点在这个维度上的坐标均为 0:

无法操作者输。
相信大家一定发现了,我们可以将任意一个坐标编码为一个二进制数。例如对于坐标 (0,1,1,1,0,0,1,0),可以编码为 01110010,对应十进制数 114。
小 A 和 B 将进行 q 轮游戏。两人绝顶聪明,都想要自己赢。每一轮双方点的位置将会随机生成,进一步地,生成到编码为 x 的坐标的概率为 px。
由于小 A 先手,所以每轮她们将会划定一个可落子区域 [l,r],其他区域则为不可落子区域。如果小 A 初始的点坐标编码后的值在区间 [l,r] 外,则将会判为小 B 胜。(此规则对小 B 不生效,也就是即使小 B 初始的点坐标编码后的值在区间 [l,r] 外,也不会直接判为小 A 胜)
现在对于第 i 轮,可落子区域为 [li,ri],小 B 会有 ai 个询问,每个询问为当她的点被随机到编号为 x 的坐标,且小 A 的点按照 p 的概率随机生成时,她的胜率为多少。答案对 998244353 取模。
输入格式
第一行一个正整数 c 表示子任务编号,特殊地,样例的编号为 0。
接下来一行一个正整数 t 表示数据读入输出方法。当 t=1 时,你需要在下一行接着读入一个整数 seed 表示随机种子。
接下来一行一个正整数 k 表示维度数。
接下来一行 2k 个非负整数 p0,p1,⋯,p2k−1 表示生成到编码为 x 的坐标的概率为 px。
接下来一行一个正整数 q 表示游戏轮数。
接下来 q 组询问,对于第 i 组询问(下标从 1 开始):
每组询问第一行三个整数,表示 ai,li,ri。
当 t=0 时,接下来一行 ai 个整数 xi,1,xi,2,⋯,xi,ai,表示每次小 B 的询问。
当 t=1 时,接下来小 B 的第 j 个询问(下标从 1 开始)xi,j 为 seed×i×j×50007mod(2k)。
对于 C++ 选手,我们下发了一份数据读入模板 down.cpp
,您只需要完善其中的代码部分即可。
输出格式
当 t=0 时,对于第 i 组询问输出一行 ai 个整数,表示这组询问所有答案模 998244353 后的值。
当 t=1 时,对于每组询问输出一行一个整数,表示这组询问所有答案模 998244353 后的异或和。
提示
样例 1 解释
对于第一组询问,当小 A 的点在编号为 1 的坐标时,由于超出了可落子区域,小 B 胜;当小 A 的点在编号为 2 的坐标时,小 A 胜;当小 A 的点在编号为 3 的坐标时,小 B 胜。
故在模意义下,小 B 的胜率:1+2=3。
样例 2 解释
解码后,x1,1=1,x1,2=2,答案分别为 18,18,异或和为 0。
本题目采用捆绑测试。
子任务编号 |
k≤ |
q≤ |
ai≤ |
时间限制 |
特殊性质 |
分值 |
0 |
5 |
30 |
1 秒 |
样例 |
0 |
1 |
|
5 |
2 |
3 |
10 |
300 |
100 |
20 |
4 |
15 |
100 |
215 |
t=1 |
5 |
16 |
1000 |
100 |
|
10 |
6 |
2000 |
3000 |
t=1 |
7 |
3000 |
215 |
2 秒 |
30 |
对于 100% 数据,满足 1≤k≤16,1≤q≤3000,0≤pi<998244353,1≤ai≤215,0≤li≤ri<2k,0≤xi,j<2k,t∈{0,1},0≤seed≤50007。保证 ∑i=02k−1pi≡1(mod998244353)。
本题输入输出量大,请使用较快的输入输出方式。