#4676. 模板. Nim 积
模板. Nim 积
Description
这是一道模板题。
对于两个非负整数 我们定义其 Nim 积 :
$$x \otimes y = \operatorname {mex} \{ (a\otimes b) \oplus (a\otimes y) \oplus (x\otimes b) \mid 0\le a < x \wedge 0\le b < y \} $$其中 是异或运算, 是集合中不存在的最小非负整数。
Input
第一行输入四个整数 。
为了测试效率,询问数量 可能很大,使用如下代码生成询问的输入:
unsigned int SA, SB, SC;
unsigned int rng() {
SA ^= SA << 16;
SA ^= SA >> 5;
SA ^= SA << 1;
unsigned int t = SA;
SA = SB;
SB = SC;
SC ^= t ^ SA;
return SC;
}
在接下来 组询问中,设 最初为 ,则按顺序有
unsigned int x = rng() + lastans;
unsigned int y = rng();
lastans = nim_mul(x, y);
如此进行 次循环。
Output
输出一行一个整数,表示最后一组解的答案。
Samples
5 171380702 78283356 95463589
1145338263
各组询问的 解码后以及 Nim 积分别是:
Limitation
生成的数据均在 范围以内,故保证 。
四组数据中的 分别为 。