'commit'
This commit is contained in:
30
TangDou/AcWing_TiGao/T5/GameTheory/HDU2176.cpp
Normal file
30
TangDou/AcWing_TiGao/T5/GameTheory/HDU2176.cpp
Normal file
@@ -0,0 +1,30 @@
|
||||
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
const int N = 200010;
|
||||
int a[N];
|
||||
|
||||
int main() {
|
||||
int n;
|
||||
while (~scanf("%d", &n) && n) {
|
||||
int x = 0;
|
||||
for (int i = 0; i < n; i++) {
|
||||
scanf("%d", &a[i]);
|
||||
x = x ^ a[i];
|
||||
}
|
||||
if (!x)
|
||||
puts("No");
|
||||
else {
|
||||
puts("Yes");
|
||||
for (int i = 0; i < n; i++) {
|
||||
int res = a[i] ^ x;
|
||||
//找到了证明中提到的: a_i ,此堆的数量最高位第k位,数值为1
|
||||
//拿走:a[i]- (a[i]^x)
|
||||
//剩下:a[i]^x = res个
|
||||
if (res < a[i])
|
||||
printf("%d %d\n", a[i], res);
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user