博弈论 ( Nim游戏+SG模板)——S-Nim ( HDU 1536 )
来源:互联网 发布:变声器男变女甜美软件 编辑:程序博客网 时间:2024/06/12 00:37
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1536分析:
给出K种拿石子的方法,然后给出I堆石子让你判断当前位置是必胜点还是必败点。题解:
对于每次给出的K种拿法,先用SG函数预处理一遍,然后直接异或每一堆石子的数量就能得到其最终结果SG函数模板:
const int MAX = 10005;//总的石子数int f[105], sg[MAX]; //f为可以操作的集合void get_sg(int n){ memset(sg, 0, sizeof(sg)); bool vst[MAX]; for(int i = 0; i < MAX; i++) { memset(vst, false, sizeof(vst)); int h = 0, j; while(i >= f[h] && h < n) vst[sg[i - f[h++]]] = true; for(j = 0; j <= i; j++) { if(!vst[j]) { sg[i] = j; break; } } } return ;}
- AC 代码:
#include <iostream>#include <cmath>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int MAX = 10005;int f[105], sg[MAX];void get_sg(int n){ memset(sg, 0, sizeof(sg)); bool vst[MAX]; for(int i = 0; i < MAX; i++) { memset(vst, false, sizeof(vst)); int h = 0, j; while(i >= f[h] && h < n) vst[sg[i - f[h++]]] = true; for(j = 0; j <= i; j++) { if(!vst[j]) { sg[i] = j; break; } } } return ;}int k;int m,I;int main(){ while(~scanf("%d", &k) && k ) { for(int i=0;i<k;i++) { scanf("%d", &f[i]); } sort(f, f+k); get_sg(k); scanf("%d", &m); for(int i=0;i<m;i++) { int heaps,ans=0; scanf("%d", &I); for(int j=0;j<I;j++) { scanf("%d", &heaps); ans ^= sg[heaps]; } if(!ans) printf("L"); else printf("W"); } printf("\n"); } return 0;}
0 0
- 博弈论 ( Nim游戏+SG模板)——S-Nim ( HDU 1536 )
- HDU 1536 S-Nim 博弈论-SG定理
- HDU 1536 S-Nim(博弈论+SG定理)
- HDU 1536 S-Nim SG函数 Nim
- 博弈论—Nim游戏
- 博弈论—Nim游戏
- POJ-2960(S-Nim)——博弈论,SG函数
- nim游戏/sg函数(博弈论)
- nim游戏/sg函数(博弈论)
- nim游戏/sg函数(博弈论)
- HDU 1536 && HDU 1944 S-Nim (Nim博弈、SG函数模板)
- HDU 1536 S-Nim (博弈 sg函数 Nim和)
- HDU 1536 S-Nim(博弈论)
- hdu 1536 (S-Nim) SG解法
- SG函数 hdu 1536 S-Nim
- hdu 1536 S-Nim sg函数
- HDU 1536 S-Nim (SG定理)
- HDU 1536 S-Nim 求SG函数
- php class回顾篇
- linphone-LpConfigImpl文件对应的JNI层文件分析
- Android事件和事件监听 来个飞机设个背景图让飞机上下左右动
- linux负载排查
- angular中刷新显示与ng-bind
- 博弈论 ( Nim游戏+SG模板)——S-Nim ( HDU 1536 )
- 数据库视频总结(心得)
- android之layout布局和ListView中的一些属性介绍
- |Tyvj|二叉树|P1441 求二叉树的先序序列
- 代理模式
- JMeter学习(二)录制脚本
- linphone-LinphoneInfoMessageImpl文件对应的JNI层文件分析
- iOS使用第三方工具(RegexKitLite)实现正则表达式
- 各算法时间复杂度总结—持续更新