入门交互。考虑每一次询问出每一个位的值。从低位到高位考虑,若此时当前位的 的数量减少 ,则说明这一位的值为 ,否则直接暴力推算出其下一个 的位置。
交互次数为 级别,可以通过。
#include <bits/stdc++.h>
#define eb emplace_back
#define int long long
using namespace std;
const int N = 1000100, mod = 998244353;
int a[N], res[N];
signed main() {
int T;
cin >> T;
while (T--) {
int cnt, A = 0;
cin >> cnt;
int i = 0;
while (1) {
cout << "- " << (1ll << i) << endl;
int x;
cin >> x;
for (int j = 0; j < x - cnt + 1; ++j) {
++i;
}
A |= (1ll << i);
if (x == i) {
break;
}
cnt = x;
}
cout << "! " << A << endl;
}
return 0;
}
/*
*/
喜欢的话,留下你的评论吧~