这是由n个巴什博奕的游戏合成的组合游戏。
对于一个有m个石子,每次至多取l个的巴什博奕,这个状态的SG函数值为m % (l + 1)。
然后根据SG定理,合成游戏的SG函数就是各个子游戏SG函数值的异或和。
1 #include <cstdio> 2 3 int main() 4 { 5 int T, n; scanf("%d", &T); 6 while(T--) 7 { 8 scanf("%d", &n); 9 int s = 0, m, l; 10 while(n--) { scanf("%d%d", &m, &l); s ^= m%(l+1); } 11 printf("%s\n", s ? "No" : "Yes"); 12 } 13 14 return 0; 15 }
代码君
时间: 2024-10-10 21:30:17