当前位置: 首页 > news >正文

题解:AtCoder ARC208C Mod of XOR

题意

给定 \(C,X\),构造一个 \(n(1\leq n<2^{60})\) 使得 \((n\oplus C)\bmod{n}=X\),或报告无解。多测,\(1\leq T\leq 2\times 10^5\)\(1\leq C,X<2^{30}\)

题解

神人构造题。

显然要有 \(n>X\)。不妨设 \(n\oplus C=qn+X\),分类讨论 \(q\) 的取值。

\(q=0\)

此时 \(n\oplus C=X\Leftrightarrow n=C\oplus X\),于是如果 \((C\oplus X)>X\) 成立,这就是一个合法解。

\(q=1\)

此时 \(n\oplus C=n+X\)。考虑把 \(n\oplus C\) 拆成 \(n+C-2(n\operatorname{and} C)\),这样就变成了 \(C-2(n\operatorname{and} C)=X\)。设 \(d=C-X\)

  • \(d\) 是奇数或 \(d<0\),则 \(q=1\) 的 case 无解。
  • \(d\) 是非负偶数,但是 \(\left(\dfrac{d}{2}\operatorname{and} C\right)\neq C\),则同样无解。
  • \(d\) 是非负偶数,且 \(\left(\dfrac{d}{2}\operatorname{and} C\right)=C\),我们令 \(n=\left(\dfrac{d}{2}\operatorname{and} C\right)+2^{30}\) 即可。

\(q\geq 2\)

我们指出,若上面两种 case 都无解,则这种 case 也无解。

证明:反证法,假设 \(0\leq q\leq 1\) 的 case 都无解,且 \(q=2\) 的 case 有解。很显然 \(qn+X=(n\oplus C)\leq n+C\),因此 \(C\geq (q-1)n+X>2X\)。而注意到 \(q=0\) 的 case 无解等价于 \((C\oplus X)\leq X\),这和 \(C>2X\) 矛盾。\(\Box\)


按照上述分类讨论直接实现即可,时间复杂度 \(\mathcal{O}(T)\)

代码

#include <bits/stdc++.h>using namespace std;#define lowbit(x) ((x) & -(x))
typedef long long ll;
typedef pair<int, int> pii;template<typename T> inline void chk_min(T &x, T y) { x = min(x, y); }
template<typename T> inline void chk_max(T &x, T y) { x = max(x, y); }int T, c, x;int main() {ios::sync_with_stdio(0), cin.tie(0);cin >> T;while (T--) {cin >> c >> x;int n = c ^ x;if (n > x) { cout << n << '\n'; continue; }int d = c - x;if (d >= 0 && (~d & 1)) {d >>= 1;if ((d & c) == d) cout << (d | (1ll << 30)) << '\n';else cout << "-1\n";} else cout << "-1\n";}return 0;
}
http://www.zskr.cn/news/25693.html

相关文章:

  • 32-腾讯IM接入资料和定价
  • 题解:AtCoder ARC207A Affinity for Artifacts
  • [笔记]高斯消元
  • 02.Python百行代码实现抽奖系统
  • [SSH] scp:基于 SSH 的安全文件传输
  • 题解:P11662 [JOI 2025 Final] 方格染色 / Grid Coloring
  • CSP-S 32 多校5
  • CSP-S 29
  • ES原理、zookeeper、kafka
  • LangGraph 记忆系统实战:反馈循环 + 动态 Prompt 让 AI 持续学习
  • 【HOWTO】购买和销售二手测试仪器指南
  • 小马算力致敬程序员
  • 蛋白表达标签:重组蛋白研究的精妙引擎
  • 106.腾讯地图位置服务再出错
  • Luogu P10034 「Cfz Round 3」Circle 题解 [ 蓝 ] [ 背包 DP ] [ 质数筛 ] [ 图论 ] [ 构造 ]
  • 20232410 2025-2026-1 《网络与系统攻防技术》实验二实验报告
  • SQLite简单使用
  • 心理咨询系统
  • Adaptive Learning Rate(自适应学习率) - -一叶知秋
  • 新学期每日总结(第12天)
  • 17 线程的创建
  • 2025.10.20总结 - A
  • 一般公共预算收入 + 全国政府性基金收入
  • 傻瓜式处理kauditd0病毒程序记录
  • 软件工程第二次团队作业
  • 好用的网址
  • 低代码赋能业务创新:打破数字鸿沟,释放业务潜能
  • 10/20/2025杂题 关于在线性时间内求解低次多项式的幂
  • 计算机毕业设计 基于EChants的海洋气象数据可视化平台设计与建立 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
  • ZR 2025 NOIP 二十连测 Day 5