D1. RPD and Rap Sheet (Easy Version) (交互题+构造)
作者:
Lss_lmj
,
2021-08-04 09:17:45
,
所有人可见
,
阅读 276
https://codeforces.com/problemset/problem/1543/D1
x xor z = y
x xor z xor x = y xor x
则
z = y xor x // 新答案z = 猜测数y xor 之前答案x
答案在0~ n-1 之间
遍历一边即可,但是每一次不成功的猜测会使答案变化
所以构造一个办法使答案 “不变 ”
新答案z为0时,猜测成功
设原始答案4
(4)xor 0 xor 1 xor 2 xor 3 xor 4 = 0 xor 1 xor 2 xor 3
--->
(4) xor 0 xor (0 xor 1)xor(1 xor 2)xor(2 xor 3)xor(3 xor 4) = 0
D1 AC代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t=1;
cin >> t;
while(t--)
{
int n,k;
cin >> n >> k;
for(int i=0;i<n;i++)
{
if(i==0)
cout << 0 << endl;
else
cout << (i^(i-1)) << endl;
int v;
cin >> v;
if(v==1)
break;
}
}
return 0;
}