- P14's solution
P14's Solution
- 2025-9-4 21:59:17 @
如果 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;
}