[BeiJing2009 WinterCamp] bzoj1874 取石子游戏 [博弈论]
2018-03-12 11:16
309 查看
Description:
小H和小Z正在玩一个取石子游戏。 取石子游戏的规则是这样的,每个人每次可以从一堆石子中取出若干个石子,
每次取石子的个数有限制,谁不能取石子时就会输掉游戏。 小H先进行操作,他想问你他是否有必胜策略,如果有
,第一步如何取石子。
Solution:
暴力求出sgsg函数,判断每个子游戏也就是石子堆的异或和是否为00,为00则输出NONO,否则枚举选哪堆石子,拿多少,判断sgsg函数是否为00即可。
小H和小Z正在玩一个取石子游戏。 取石子游戏的规则是这样的,每个人每次可以从一堆石子中取出若干个石子,
每次取石子的个数有限制,谁不能取石子时就会输掉游戏。 小H先进行操作,他想问你他是否有必胜策略,如果有
,第一步如何取石子。
Solution:
暴力求出sgsg函数,判断每个子游戏也就是石子堆的异或和是否为00,为00则输出NONO,否则枚举选哪堆石子,拿多少,判断sgsg函数是否为00即可。
#include <bits/stdc++.h> using namespace std; const int N = 1005; int n, m; int a , b , vis , sg ; int main() { scanf("%d", &n); for(int i = 1; i <= n; ++i) { scanf("%d", &a[i]); } scanf("%d", &m); for(int i = 1; i <= m; ++i) { scanf("%d", &b[i]); } for(int i = 1; i <= 1000; ++i) { memset(vis, 0, sizeof(vis)); for(int j = 1; j <= m; ++j) { if(i >= b[j]) { vis[sg[i - b[j]]] = 1; } } for(int j = 0; j <= 1000; ++j) { if(!vis[j]) { sg[i] = j; break; } } } int ans = 0; for(int i = 1; i <= n; ++i) { ans ^= sg[a[i]]; } if(!ans) { puts("NO"); } else { puts("YES"); int ans1 = 0, ans2 = 0; for(int i = 1; i <= n; ++i) { for(int j = 1; j <= m; ++j) { if(a[i] >= b[j] && (ans ^ sg[a[i]] ^ sg[a[i] - b[j]]) == 0) { printf("%d %d\n", i, b[j]); return 0; } } } } return 0; }
相关文章推荐
- 【博弈论】【SG函数】【枚举】bzoj1874 [BeiJing2009 WinterCamp]取石子游戏
- [BZOJ 1874] [BeiJing2009 WinterCamp] 取石子游戏 【博弈论 | SG函数】
- [BZOJ1874][BeiJing2009 WinterCamp]取石子游戏
- bzoj 1874: [BeiJing2009 WinterCamp]取石子游戏
- BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏(SG函数)
- 【BZOJ 1874】 [BeiJing2009 WinterCamp]取石子游戏
- [BZOJ1874][BeiJing2009 WinterCamp]取石子游戏
- BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏 [Nim游戏 SG函数]
- bzoj 1874: [BeiJing2009 WinterCamp]取石子游戏 Nim游戏+SG函数
- bzoj1874 [BeiJing2009 WinterCamp]取石子游戏 nim游戏 sg函数
- bzoj1874: [BeiJing2009 WinterCamp]取石子游戏
- [BZOJ1874][BeiJing2009 WinterCamp]取石子游戏(博弈SG函数)
- BZOJ1874: [BeiJing2009 WinterCamp]取石子游戏
- 1874: [BeiJing2009 WinterCamp]取石子游戏 - BZOJ
- bzoj 1874 [BeiJing2009 WinterCamp]取石子游戏
- BZOJ_P1874 [BeiJing2009 WinterCamp]取石子游戏(博弈+SG函数)
- bzoj1874: [BeiJing2009 WinterCamp]取石子游戏 组合游戏
- [bzoj1115][POI2009]石子游戏Kam_博弈论_阶梯博弈
- bzoj 1874 取石子游戏 博弈论
- BZOJ1115:[POI2009]石子游戏Kam(博弈论)