#include <iostream> #include <vector> #include <numeric> using namespace std; // 设原数组是{a. b}, x = a ^ b; // 新数组为{a, b, a^b} // 尝试取数组第一个数为x, x = a; // 则应该有剩下元素的按位异或结果 = x, // 即应该有(a^b) ^ a = b这个等式成立 // 这个等式利用按位异或满足交换律和结合律就能验证是成立的! // 那么我们可以猜想,新数组的第一个元素就是x // 例子:旧数组{a, b, c} -> 新数...