有n堆小石子,每一堆分别有$a_1,a_2…a_n$个
先手必胜态:$a_1$^$a_2$^$a_3$…^$a_n ≠ 0$
先手必败态:$a_1$^$a_2$^$a_3$…^$a_n = 0$
证明:
-
假设先手状态 :
$~a_1$^$a_2$^$a_3$…^$a_n = x$, 当在第 $i$ 堆取走$a_i-(a_i$^$x)$时,剩余$a_i=a_i-(a_i-(a_i$^$x)) = a_i$^$x$,
此时有$a_1$^$a_2$^$a_3$…^$a_n$^$x = 0$,所以先手必胜 -
假设先手状态:
$a_1$^$a_2$^$a_3$…$a_i$…^$a_n = 0$,
而取走任意一堆的任意数量,仍有$a_1$^$a_2$^$a_3$…($a_i-x$)…^$a_n = 0$成立
令两式左右两端分别异或得:$a_i$^$(a_i-x)=0$,显然是错误的,假设不成立,所以先手异或得0,无论怎么取都无法让后手异或为0
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int res = 1;
while(n-->0) {
int a = scanner.nextInt();
res ^= a;
}
System.out.println((res^1)!=0?"Yes":"No");
}
}