HDU 1536 S-Nim(SG经典博弈)
来源:互联网 发布:仿麦客网表单源码 编辑:程序博客网 时间:2024/06/05 03:00
题目链接
题意:给你可以进行操作的步数,然后分别给你一堆石子,求解每一次给出的石子先者输赢的结果,经典的SG博弈,SG具体不解释
#include <cstdio>#include <cstring>#include <algorithm>#define FIN freopen("input.txt", "r", stdin)using namespace std;const int MAXN = 1e4 + 10;const int MAXM = 1e2 + 5;int s[MAXM];int SG[MAXN], k;intgetsg(int m) {//使用记忆化搜索进行处理,用于处理超时问题int Hash[MAXM] = {0};inti;for(i = 0; i < k; i ++) {if(m - s[i] < 0) {break;}if(SG[m - s[i]] == -1) {SG[m - s[i]] = getsg(m - s[i]);}Hash[SG[m - s[i]]] = 1;}for(i = 0; ; i ++) {if(Hash[i] == 0) {return i;}}}int main() {//FIN;while(~scanf("%d", &k), k) {for(int i = 0; i < k; i ++) {scanf("%d", &s[i]);}sort(s, s + k);int m, n;scanf("%d", &m);memset(SG, -1, sizeof(SG));while(m --) {int sum = 0, x;scanf("%d", &n);for(int i = 0; i < n; i ++) {scanf("%d", &x);if(SG[x] == -1) SG[x] = getsg(x);sum ^= SG[x];}printf(sum ? "W" : "L");}printf("\n");}return 0;}
1 0
- HDU 1536 S-Nim(SG经典博弈)
- HDU 1536(sg博弈) S-Nim
- HDU 1536 S-Nim [SG函数]【博弈】
- HDU 1536 S-Nim(SG博弈)
- HDU 1536 S-Nim 博弈,SG函数
- HDU 1536 S-Nim (博弈 sg函数 Nim和)
- hdu 1536、hdu 1944 S-Nim(博弈SG函数)
- hdu 1536 | hdu 1944 - S-Nim(博弈-SG)
- HDU 1536 & POJ 2960 S-Nim(博弈 SG)
- HDU 1536 S-Nim 博弈求sg函数
- HDU 1536 && HDU 1944 S-Nim (Nim博弈、SG函数模板)
- hdu 1536 S-Nim (SG函数经典题)
- HDOJ 1536 S-Nim 博弈 SG函数
- HDU 1536 S-Nim SG函数 Nim
- [ACM] hdu 1536 S-Nim(Nim组合博弈 SG函数打表)
- hdu 1536 S-Nim(经典尼姆博弈)
- hdu 1536 S-Nim (博弈)
- hdu 1536 (S-Nim) SG解法
- 仪表识别材料
- [Utils工具整理] Toast 显示帮助类
- 【HD 1878】欧拉回路
- C#控制台 截取string字符串中的一段用Substring
- [Java笔记] 反射
- HDU 1536 S-Nim(SG经典博弈)
- Keepalived+Nginx实现高可用(HA)
- php正则表达式
- 函数传参
- HTML5的FileReader用法
- poj 1611 The Suspects 【并查集】
- 进程之写时拷贝技术
- APP开发实战127-APP性能优化工具
- SDUT 2127 树-堆结构练习——合并果子之哈夫曼树