题解:设 d=gcd(a,b),那么 a,b 都是 d 的倍数,a+b和a-b也一定是 d 的倍数。然后看 1~n 范围内有多少个数是 d 的倍数,奇数个就是先手赢,偶数个就是后手赢
下面g函数是gcd函数。
C语言AC代码:
#define l long
l g(l a,l b){
return b?g(b,a%b):a
题解:设 d=gcd(a,b),那么 a,b 都是 d 的倍数,a+b和a-b也一定是 d 的倍数。然后看 1~n 范围内有多少个数是 d 的倍数,奇数个就是先手赢,偶数个就是后手赢
下面g函数是gcd函数。
C语言AC代码:
#define l long
l g(l a,l b){
return b?g(b,a%b):a