信息
- ID
- 1674
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
设 1 号顶点的卡片值为 x。
图连通,因此沿边 BFS 后,每个顶点的值都能写成 x⊕dv,其中 d1=0,边 (u,v) 上的记录保证 dv=du⊕X。多余的非树边不会增加新的自由度。
若 N 为偶数,所有顶点卡片的异或和中 x 出现偶数次而抵消,故它等于 ⨁vdv。又因为顶点上恰好放置了 0 到 N 中除被吃掉数字外的所有卡片,所以答案为 (⨁i=0Ni)⊕(⨁vdv)。若 N 为奇数,把一个合法赋值的所有卡片值同时翻转最低位,边上的异或均不变,并会得到另一个缺失数字,因此答案不唯一。
每组数据只需一次 BFS,时间复杂度 O(N+M),空间复杂度 O(N+M)。