题目大意
现有一个序列 An ,每个元素都是 64 位无符号整数,有两种操作。
- 将数
Ai
在二进制下右移
x
位。比如将
9211 右移 10 位变成 4273995784 - 输出 Ax 与 Ay 异或的结果
现在给出每个二号操作的结果,要求还原出原来的序列,求字典序最小的解或输出无解。
分析
考虑到每一位之间都是相对独立的思路就十分明显了。
异或该位为
0
或
其实这个过程直观地来想是个bfs的染色。然而空间卡得非常非常死,而并查集二分图染色就很好地解决了这个问题。
需要注意的
如何卡空间。