luogu#P5652. 基础博弈练习题
基础博弈练习题
题目背景
YSGH is our red sun.
题目描述
YSGH 和 YGSH 在打膈膜,YSGS 在旁边围观。
规则是这样的,先给定一个正整数 和一个 个数的序列 ,一开始有一个棋子在 的第一个位置,并将 减去 。此后双方轮流操作,每次操作,假设当前棋子在 ,可以把棋子移到一个位置 ,满足 且 ,然后将 减 ,YSGH 先手,谁先不能操作谁输。
众所周知,YSGH 和 YGSH 都是绝顶聪明的,所以两人都会使用最优策略。
而隔膜使用的序列 是一个序列 的一个连续非空子序列,当然序列 和每次隔膜使用的序列 都是 YSGS 定的。
现在他们进行了 轮游戏,给出每轮游戏使用的区间,请你判断每轮谁会赢。
输入格式
由于本题数据规模较大,直接输入输出会占用比计算多数倍的时间,因此当询问过多时会对询问的输入输出进行了压缩。
第一行四个正整数 , 意义同题面描述, 表示当前数据的类型, 说明该组数据进行了压缩, 则说明没有,数据保证当 时,。
第二行 个正整数,第 个正整数表示 ,意义同题面描述。
如果 ,第三行四个正整数 ,表示询问的生成方式。
int A, B, C, P;
inline int rnd() { return A = (A * B + C) % P; }
每次询问时的调用方法为:
l = rnd() % n + 1, r = rnd() % n + 1;
如果生成的 ,则还需要交换 。
数据保证 ,,。
如果 ,接下来 行,每行两个正整数 ,意义同题面描述。
输出格式
令 表示第 次询问中 YSGH 是否会赢,如果会赢则 ,否则 。
输出一行一个整数,表示 $\displaystyle \left( \sum_{i = 1}^{q} i^2 \cdot {ans}_i \right)\! \bmod 2^{32}$。
5 2 3 0
2 4 1 2 3
1 5
3 5
3 4
5
提示
对于 的数据,,。
对于 的数据,。
另有 的数据,,。
对于 的数据,。
对于 的数据,,,。