#L3535. 「NOI2021」量子通信
「NOI2021」量子通信
题目描述
小 Z 正在自学量子计算机相关知识,最近他在研究量子通信章节,并遇到了一个有趣的问题。在该问题中,Alice 和 Bob 正在进行量子通信,它们的通信语言是一个大小为 的字典 ,在该字典中,每一个单词 ()都可以用一个 位的 串来表示。在本题中 可以通过调用函数 gen 来生成,选手可以在题目目录下的 gen.cpp 中查看,该函数的参数 、、 将由输入数据给出。
Alice 和 Bob 接下来要进行 次通信,每次通信由 Alice 向 Bob 传输恰好一个字典中的单词。然而,两人使用的通信信道并不可靠,会受到噪音的干扰。更具体地,对于第 次传输,记 Alice 传输的原单词为 ,该 串会受噪音干扰而翻转最多 位。换句话说,记 Bob 这次收到的 串为 ,它与 相比,可能有最多 位是不同的,并且 可能不在字典 中出现。
与此同时,Bob 得知坏人 Eve 也潜入了两人的通信信道,并准备干扰两人的通信。他的干扰方式是将 Bob 收到的 串变为任意的 位 串,并且这个串可能不在字典 中出现。Eve 非常狡猾,他不一定会对每次通信都进行干扰。
现在 Bob 找来了你帮忙,对于接下来的每次通信,你需要根据 Bob 最终收到的 串以及这次通信的噪音干扰阈值 (),判断这次通信是否有可能没有受到 Eve 的干扰(即 Bob 收到的 串可以由字典中的某个单词翻转至多 位后得到)。本次通信如果有可能没受到 Eve 干扰,请你输出 ,否则输出 。Bob 很信任你的能力,所以你需要在线地回答结果,具体要求见输入格式。
为了降低读入用时, Bob 收到的串将用长度为 的 进制串给出, 进制串中包含数字字符 与大写英文字母 ,其中字符 依次表示数值 。
进制串可以逐位转化为 串,例如: 对应 , 对应 , 对应 。
输入格式
从文件 qi.in 读入数据。
输入数据第一行包含四个非负整数 , , , ,分别表示字典大小,通信次数,以及 gen 函数中参数 a1 和 a2 的初始值。
选手需要在自己的程序中调用题目描述中提到的 gen 函数生成单词表,选手可以复制并使用 gen.cpp 中的代码,程序中的布尔数组 s[N+1][256] 即为所有的单词。
接下来 行,每行包含一个长度为 的 进制串和一个非负整数 ,分别表示第 次通信 Bob 最终收到的 串和噪音干扰阈值。
为了强制选手在线地回答询问,选手根据 进制串还原出 位 串后,将 串每一位异或上 才能得到这次通信中 Bob 收到的真实 串,其中 表示上一次询问的答案,第一个询问前 初始值为 。
注意:使用 scanf 和 printf 函数读入或输出 unsigned long long 类型变量时,对应的占位符为 %llu。
输出格式
输出到文件 qi.out 中。
输出共 行,每行一个整数 或 表示当前询问的答案。
10 10 155719172195742742 2592928081197251992
2AAE5EEC8A9CEA1C618616431B5CBBCD5FEEC794B4BCC4EA568204B9C965406D 4
A6C5B9900DA278E04C5080DCA5D9C6B2F2D7C063290B33C453B6B8B9723AD262 2
2AAE5EEC8A9CEA0C61A616431B5CBBCD5FEEC794B4BCC4EA568204BBC9654065 3
91FF221DEAA1D2ABA4DAB6E512EADA803061D7B0ECCFC9FA207B50A7ADC8AC1B 5
4BCD4F789A68C04B1F57E6C733E5465DC304BB4B011174F6A46FFC98A340250E 5
B432B08765971FB4E0A81938CC1AB9A23CFB44B4FEEE8B095B9003675CBFDAF1 5
516BD2BE89A6C6B1E072DF7139143F9F61C029421576E8915DF109E9616C919B 2
AE942D417659394E1F8D208EC6FBC0609E3FD6BDEA89176EA20AF6169E936E64 5
2AAE5EEC8A9CEA0C61A616431B5CBBCD5FEEC794B4BCC4EA568204BBC96D4065 2
A6C5B9900DA278E04C5080DCA5D9C6B2F297C063290B33C453B6B8B9723AD262 5
0
1
1
0
1
1
0
0
0
1
询问举例
为了方便解释题意,我们使用了直接给出字典中单词、缩小单词长度为 、允许离线地回答询问等方式,对简化的情况举例。
考虑字典大小为 ,单词有 和 。
对于询问 和 ,回答应该是 ,通过翻转 的第 位(从高位到低位,下同)得到。
对于询问 和 ,回答应该是 ,通过翻转 的第 、 位得到。
对于询问 和 ,回答应该是 。
翻转 至多 位可得 、、、、。 翻转 至多 位可得 、、、、。 无法得到 ,它必定是由 Eve 干扰得到的。
数据规模与约定
对于所有测试点:,,, 和 在 之间均匀随机生成。