1 条题解
-
2
如果 A 程序可以向 B 程序传递一个不大于 的非负整数,那么这就是一个 Hash 模板题。弱化后的题目随便用什么 Hash 函数都能过,比如「所有 的位置编号之和 」。
然而,这道题目只允许 A 程序向 B 程序传递一个不大于 的非负整数,因此我们要优化 Hash 函数——把 Hash 函数改为「所有 的位置编号之异或和」就可以通过此题了。
#include <bits/stdc++.h> using namespace std; int main() { string S; cin >> S; int X = 0; int n = S.size(); S = ' ' + S; for (int i = 1; i <= n; i++) if (S[i] == '1') X ^= i; cout << X << endl; return 0; } /* ATTENTION!!! THIS IS THE BARRIER!!! */ #include <bits/stdc++.h> using namespace std; int main() { string T; int X; cin >> T >> X; int D = 0; int n = T.size(); T = ' ' + T; for (int i = 1; i <= n; i++) if (T[i] == '1') X ^= i; D = X; cout << D << endl; return 0; }
- 1
信息
- ID
- 117
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 67
- 已通过
- 3
- 上传者