跳到主要内容
图灵 OJTURING / ONLINE JUDGE

#F0138. #541. 「LibreOJ NOIP Round #1」七曜圣贤

    ID: 144 传统题 3000ms 1024MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>待分类整理状态难度待定难度共享题库LibreOJ中文题面题目来源题面语言

#541. 「LibreOJ NOIP Round #1」七曜圣贤

题目描述

本题 C/C++ 时限 2.5 秒,Pascal 时限 5 秒。最后将改时限重测所有 Pascal 提交。

不知道大家有没有听过物凄系列的一首歌,帕秋莉用卡车给博丽老板运货的故事。

又一次,卡车司机帕秋莉被拜托。红魔馆之主蕾米莉亚喜欢喝红茶,一天她要求帕秋莉开卡车帮她运红茶过来。

红茶其实是编好号了的,每个红茶都用一个非负整数来编号,从 开始一直到正无穷。帕秋莉请来好朋友魔理沙,帮她一起运红茶。

一开始卡车上已经有了编号为 到 的红茶(注意 就表示初始卡车上没有任何红茶),然后接下来到红魔馆的路上有 个时刻,每个时刻都会发生一种事件。

  • 第一种事件,帕秋莉到了一个红茶店,买了一个编号为 的红茶(卡车上初始没有这种编号的红茶,之前也不会买过相同编号的红茶)。
  • 第二种事件,一个目前在卡车上的编号为 的红茶飞出了卡车。
  • 第三种事件,魔理沙把目前不在卡车上的最早飞出去的红茶捡回了卡车上(如果一个红茶曾经飞出去被捡回来过然后再飞出去,这里认为其飞出去的时间为最近一次飞出去的时间)。

由于描述这些事件实在是太麻烦了,聪明的魔理沙用了一个长度为 的整数序列 来描述每个时刻发生的事件。

  • 这个序列 里所有元素均为 的整数。
  • 若 则表示时刻 发生了第三种事件,如果此时并不存在满足条件的飞出去的红茶,则代表魔理沙脑子没转过来,忽视此次事件。
  • 否则,如果在时刻 编号为 的红茶初始不在卡车上也从来没有通过第一种事件买过,则表示时刻 发生了一个买编号为 的红茶的第一种事件。
  • 否则,如果在时刻 编号为 的红茶在卡车上,则表示时刻 发生了一个编号为 的红茶飞出卡车的第二种事件。
  • 否则,表示时刻 发生了第三种事件,如果此时并不存在满足条件的飞出去的红茶,则忽视此次事件。

如果某个时刻的事件被忽视,那么我们不执行对应的操作,也不计算此时的答案

帕秋莉是一个勤奋的人,每个时刻过后,如果这个时刻 发生了事件(如果一个时刻发生的事件被忽视了,就不认为这个时刻发生了事件),令 表示时刻 过后卡车上所有编号小于 的红茶都出现了,而编号为 的红茶没有出现(很显然这个值是唯一的)。当然如果时刻 没有发生事件,则令 。

请你对于 计算出 的异或和。

输入格式

第一行一个整数 ,表示数据组数。

接下来有 行,每行表示一组数据。

每组数据依次有 六个整数,其中 的意义与题面中相同;
表示是否只考虑第一种事件: 的取值为 或 ,为特殊参数。当 时,请忽视所有的第二种事件与第三种事件(忽视的含义见题面描述)。
是随机数生成器的参数。

我们使用如下实现的随机数生成器 。每组数据输入该组数据中 的初始值。

unsigned 32bit integer seed

function randnum()
    seed = seed xor (seed lsh 13)
    seed = seed xor (seed rsh 17)
    seed = seed xor (seed lsh 5)
    return seed
end function

计算 的代码如下:

for i = 1 to m by step 1
    if randnum() mod c == 0 then
        p[i] = -1
    else
        p[i] = randnum() mod b
    end if
end for

我们在「数据范围与提示」的最后提供了这道题的一个输入输出模板(也可以在附加文件中下载),如果你不需要,请忽视它。

输出格式

每组数据输出一行表示答案。

样例

样例输入

1
7 327711436 4 6 3 0

样例输出

292

样例解释

序列为 。初始时卡车上已经有了编号为 的红茶。

第一个时刻,发生第一种事件,编号为 的红茶加入卡车,此时卡车上编号为 的红茶都有,而编号为 的红茶没有,因此 。

第二个时刻,理论上应该发生第三种事件,但是并没有红茶飞出了卡车,因此该事件被忽视, 。

第三个时刻,发生第二种事件,编号为 的红茶飞出卡车,此时卡车上编号为 的红茶都有,而编号为 的红茶没有,因此 。

第四个时刻,发生第三种事件,魔理沙捡回编号为 的红茶回卡车,此时与第一个时刻后情况一致,因此 。

第五个时刻和第三个时刻一致,因此 。

第六个时刻,发生第二种事件,编号为 的红茶飞出卡车,此时卡车上编号为 的红茶都有,而编号为 的红茶没有,因此 。

第七个时刻,发生第二种事件,编号为 的红茶飞出卡车,此时卡车上编号为 的红茶都有,而编号为 的红茶没有,因此 。

更多样例

请在页面上方的附加文件中下载。

数据范围与提示

本题 C/C++ 时限 2.5 秒,Pascal 时限 5 秒。最后将改时限重测所有 Pascal 提交。

对于所有数据,, , , , , 。

表示是否只考虑第一种事件: 的取值为 或 ,为特殊参数。当 时,请忽视所有的第二种事件与第三种事件(忽视的含义见题面描述)。
注意, 时原本合法的事件也要被忽视,故即使你没有用到这个性质,也要记得判断 的情况。除测试点 以外的测试点也有可能出现 的数据。

测试点 # 的限制 的限制 特殊限制
-
-
-

题目来源:fps-loj-small-pics.zip;FPS 共享题包,题包内第 20 题。保留原作者与原赛事署名。