#T1001. 最大异或对
最大异或对
在给定的 个整数 中选出两个进行 (异或)运算,得到的结果最大是多少?
输入格式
第一行输入一个整数 。
第二行输入 个整数 ~。
输出格式
输出一个整数表示答案。
数据范围
,
输入样例:
3
1 2 3
输出样例:
3
下面按 1..25 逐组说明每组主要在卡哪些常见错误做法。 (正确做法通常是 01 Trie / 高位贪心,注意要处理到 第 30 位,因为 A_i < 2^31。) 1. 样例:基础正确性。 2. n=1, [0]:卡最小规模边界;很多实现会默认至少有两个数。 3. 两个数简单情况 [5,9]:基础异或计算。 4. 全相等:答案应为 0;卡“误把自己和自己配对”之外的逻辑错误。 5. 包含 0:卡“与 0 异或等于自身”的性质,很多错误做法会漏掉 0 的作用。 6. 全是 2 的幂:卡位处理是否正确,尤其是高位贪心。 7. 连续小整数 0..15:卡小范围暴力逻辑 / Trie 正确性。 8. 交替位模式:卡按位贪心是否真的从高位到低位做对。 9. 接近 2^30 边界:卡最高有效位处理,别只开到 29 位。 10. 接近 2^31-1:卡边界值与最高位处理。 11. 大量重复 + 一个离群值:卡重复值统计/Trie 插入后查询逻辑。 12. 小随机:综合正确性。 13. 小构造陷阱 [8,10,2]:卡一些“局部最优”或错误贪心。 14. 全 0:答案 0;卡特殊值处理。 15. 一半 0 一半最大值:答案应接近最大;卡极端两端值。 16. N=100000 小值域大量重复:卡性能,也卡重复值下 Trie/哈希写法。 17. N=100000 全范围随机:综合强测,卡 O(n^2) 暴力。 18. 等差数列:卡不是随机时也要正确。 19. 共享高前缀的一组数:卡仅低位有差异时的处理。 20. 高位组和低位组混合:卡高位分叉是否正确。 21. 单比特数与其“补码型”混合:卡理论最大值附近的答案。 22. 重复块:卡重复值很多时的实现正确性。 23. 大量接近上界的随机数:卡高位密集情况下的 Trie 查询。 24. 专卡“位数开少了”:[1<<30, 0],答案必须是 1<<30;如果只枚举到 29 位会错。 25. 单个非零数 [5]:再次卡 n=1 边界;不少题解默认两数必须不同下标,但这类 OJ 通常会接受答案 0。