CF2077B.Finding OR Sum

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

ALTER EGO - Yuta Imai vs Qlarabelle

这是一道交互题。

存在两个隐藏的非负整数 xx 和 yy(0≤x,y<2300 \leq x, y < 2^{30})。你最多可以提出 2 次以下形式的询问:

  • 选择一个非负整数 nn(0≤n<2300 \leq n < 2^{30})。评测系统将返回 (n∣x)+(n∣y)(n \mathbin{|} x) + (n \mathbin{|} y) 的值,其中 ∣| 表示按位或运算。

此后,评测系统将给出另一个非负整数 mm(0≤m<2300 \leq m < 2^{30})。你必须正确回答 (m∣x)+(m∣y)(m \mathbin{|} x) + (m \mathbin{|} y) 的值。

输入格式

每个测试包含多个测试用例。第一行输入测试用例数量 tt(1≤t≤1041 \le t \le 10^4)。接下来描述每个测试用例。

输出格式

已选择两个隐藏整数 xx 和 yy(0≤x,y<2300 \leq x, y < 2^{30})。注意 xx 和 yy 可能因不同测试用例而异。

本题的交互器是非自适应的。换句话说,整数 xx 和 yy 在交互过程中不会改变。

要提出询问,请选择一个整数 nn(0≤n<2300 \leq n < 2^{30})并在一行中仅输出该整数 nn。

你将收到一个整数,即 (n∣x)+(n∣y)(n \mathbin{|} x) + (n \mathbin{|} y) 的值。

你最多只能提出 2 次此类询问。

完成询问后,在一行中输出 "!"。你将收到一个整数 mm(0≤m<2300 \leq m < 2^{30})。注意 mm 的值在交互开始前也已确定。

你必须在一行中仅输出 (m∣x)+(m∣y)(m \mathbin{|} x) + (m \mathbin{|} y) 的值。注意此行不被视为询问,不计入询问次数统计。

完成此操作后,继续处理下一个测试用例。

如果在交互过程中提出超过 2 次询问,你的程序必须立即终止,并得到 Wrong Answer 的判定结果。否则,由于你的解决方案将继续从已关闭的流中读取数据,可能会得到任意判定结果。

在输出询问后请勿忘记换行并刷新输出缓冲区。否则你将得到 Idleness limit exceeded。为此,请使用:

  • C++ 中的 fflush(stdout) 或 cout.flush();
  • Java 中的 System.out.flush();
  • Pascal 中的 flush(output);
  • Python 中的 stdout.flush();
  • 其他语言请参考相关文档。

输入输出样例

  • 输入#1

    2
    
    3
    
    4
    
    1
    
    0
    
    1

    输出#1

    0
    
    1
    
    !
    
    4
    
    0
    
    !
    
    2

说明/提示

示例交互

在第一个测试中,交互过程如下:

解决方案输出 评测系统输出 说明
2 共有 2 个测试用例
第一个测试用例中 x=1x=1 且 y=2y=2
0 解决方案询问 (0∣1)+(0∣2)(0 \mathbin{|} 1) + (0 \mathbin{|} 2)
3 评测系统返回 3
1 解决方案询问 (1∣1)+(1∣2)(1 \mathbin{|} 1) + (1 \mathbin{|} 2)
4 评测系统返回 4
! 解决方案请求 mm 的值
1 评测系统返回 m=1m=1
4 解决方案根据先前询问得知 (1∣x)+(1∣y)=4(1 \mathbin{|} x) + (1 \mathbin{|} y)=4
第二个测试用例中 x=0x=0 且 y=0y=0
0 解决方案询问 (0∣0)+(0∣0)(0 \mathbin{|} 0) + (0 \mathbin{|} 0)
0 评测系统返回 0
! 解决方案请求 mm 的值
1 评测系统返回 m=1m=1
2 解决方案推断出 x=y=0x=y=0,因此返回 (1∣0)+(1∣0)=2(1 \mathbin{|} 0) + (1 \mathbin{|} 0)=2

注意示例输入输出中的空行仅为清晰展示,实际交互中不会出现。

注意示例输入输出中的空行仅为清晰展示,实际交互中不会出现。

Hacks

要发起 hack,请遵循以下测试格式:

第一行包含测试用例数量 tt(1≤t≤1041 \le t \le 10^4)。接下来描述每个测试用例。

每个测试用例的第一行且唯一一行包含三个整数 x,y,mx, y, m(0≤x,y,m<2300 \leq x, y, m < 2^{30})。

翻译由 DeepSeek R1 完成

输入解题思路,AI测评打分。不知道怎么写?

首页