5 条题解
-
1
Code
#include <bits/stdc++.h> using i64 = long long; constexpr int N = 1e5 + 5, LOG = 16; int T, n, h; int f[N][LOG << 1], g[LOG]; void solve() { std::cin >> h; n = (1 << h) - 1; for (int u = 1; u <= n; u++) for (int k = 1; k <= 2 * h - 2; k++) std::cin >> f[u][k]; for (int k = 1; k < h; k++) { g[k] = 0; for (int u = 1; u <= n; u++) g[k] ^= f[u][k + 1]; } for (int u = 1; u <= n; u++) { bool ok = true; for (int k = 1; k < h; k++) ok &= (g[k] == f[u][k]); for (int k = h; k <= 2 * h - 2; k++) ok &= (f[u][k] == 0); if (ok) { int v1 = (u == 1 ? 2 : 1), all = 0; for (int v2 = 1; v2 <= n; v2++) if (v1 != v2) { all = 0; for (int k = 1; k <= 2 * h - 2; k += 2) all ^= f[v1][k] ^ f[v2][k]; if (all != 0) break; } int w = all; for (int k = 1; k < h; k++) w ^= f[u][k]; return std::cout << u << " " << w << "\n", void(); } } } int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); std::cin >> T; while (T--) solve(); return 0; }
求点赞~~~
信息
- ID
- 31
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 247
- 已通过
- 21
- 上传者