#P12989. [GCJ 2022 #1B] ASeDatAb
[GCJ 2022 #1B] ASeDatAb
Description
一个研究联盟花费三年时间寻找最佳数据库,但仍存在问题。该数据库以 8 位二进制字符串形式存储记录值。遗憾的是,他们实现记录值设置功能的方式存在缺陷。
数据库的每条记录都是一个 8 位二进制字符串,其位索引从左到右为 0 至 7。当收到将特定记录设置为新值 的指令时,数据库并不会直接将其设为 ,而是执行以下操作:
- 选择一个 0 到 7 之间的整数 ,并生成 向右循环移动 位后的值 。即 的第 位等于 的第 位。
- 将记录的当前值 更新为 与 的异或值(即新值的第 位为 1 当且仅当 和 的第 位不同)。
- 最后向用户返回新值中 1 的位数。
幸运的是,无论初始值如何或数据库如何选择旋转值,总能通过不超过 300 次操作将记录值重置为全 0。请编写一个程序与数据库交互完成此任务。
交互协议
本题为交互题。
初始时,你的程序应读取一个整数 表示测试用例数量,随后处理 个测试用例。
每个测试用例开始时,数据库记录会被设为非 的值。每个测试用例中,你的程序最多可进行 300 轮交互。
每轮交互流程:
- 你输出一个 8 位二进制字符串作为操作值
- 评测系统执行前述操作后,返回一个整数 表示更新后记录值中 1 的位数
- 若 表示成功,应开始下一测试用例(或程序终止)
- 若 表示第 300 次操作仍未归零,测试失败(后续用例不再处理)
- 若 可继续尝试
只有当所有测试用例均成功将记录值归零时,解答才被视为正确。
若检测到非法输出,评测系统将返回 -1 并终止。收到 -1 后需正常退出以避免资源错误判定。
Input Format
参见交互协议。
Output Format
参见交互协议。
1
3
0
00110011
00011001
Hint
可使用测试工具进行本地测试(需与代码并行运行)。工具说明详见其注释,注意该工具并非真实评测系统。
数据范围
测试集 1(25 分,可见判定)
- 初始值为均匀随机生成的非全零 8 位二进制数
- 旋转值均为独立均匀随机选择
测试集 2(15 分,可见判定)
- 评测系统采用对抗策略(可动态调整初始值和旋转值)
- 保证初始值不为全零
翻译由 DeepSeek V3 完成
京公网安备 11011102002149号