专栏文章
题解:P12509 【模板】通信题
P12509题解参与者 2已保存评论 1
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mipbobe4
- 此快照首次捕获于
- 2025/12/03 09:22 3 个月前
- 此快照最后确认于
- 2025/12/03 09:22 3 个月前
思路分析
为洛谷第一道通信题庆生!
因为只改一个位置,所以我们考虑将二者是 的所有 异或起来,如果一样就是零,不一样就是两边的值异或起来。
正确性嘛,因为只换一个数,所以必定不会有改多个位置来构造的情况,只有改的那个位置造成异或值更改恰为那个位置的下标。
代码如下:
CPP#include<string>
int Alice(std::string S) {
long long ret = 0;
for (int i = 1;i <= S.size();++i)
if (S[i - 1] ^ 48) ret ^= i;
return ret;
}
int Bob(std::string T, int x) {
long long ret = 0;
for (int i = 1;i <= T.size();++i)
if (T[i - 1] ^ 48) ret ^= i;
return x ^ ret;
}
相关推荐
评论
共 1 条评论,欢迎与作者交流。
正在加载评论...