1 条题解
-
0
当 时无解。
依次询问所有某一位为 而其他位为 的 01 串:
- 如果结果都是 ,那么 是全 串。
- 如果结果都相等但不是 ,那么 是全 串。
- 如果结果不全相等,结果小的表明那一位为 ,大的表明那一位为 。
#include <bits/stdc++.h> #include "binary.h" using namespace std; long long ans[22]; int main() { int T = init(); while (T--) { int n = start(); if (n <= 2) { reject(); continue; } string S = ""; for (int i = 1; i <= n; i++) S += "0"; string T = S; for (int i = 0; i <= n - 1; i++) { T[i] = '1'; ans[i] = interact(T); T[i] = '0'; } bool ok = true; long long p1 = 0, p2 = 9e18; for (int i = 0; i <= n - 1; i++) { if (ans[i] != 1) ok = false; p1 = max(p1, ans[i]); p2 = min(p2, ans[i]); } if (ok) { stop(S); continue; } S = ""; for (int i = 0; i <= n - 1; i++) { if (ans[i] == p2) S += "1"; if (ans[i] != p2) S += "0"; } stop(S); } return 0; }
- 1
信息
- ID
- 243
- 时间
- 10000ms
- 内存
- 512MiB
- 难度
- 3
- 标签
- 递交数
- 14
- 已通过
- 5
- 上传者