HDU 5724 chess sg函数学习
来源:互联网 发布:linux中的sleep函数 编辑:程序博客网 时间:2024/05/29 05:13
再次做了下这个题目,学习了下sg函数
在sg函数中 最终状态的sg值为0 其余状态的sg值为其子状态中未出现过的第一个自然数值
在多组游戏同时进行的情况下,整个组合博弈的sg值为不同组sg值的异或
const int maxn = 2e6 + 4;const int maxm = 2e1 + 4;const double pi = acos(-1.0);int sg[maxn];int getsg(int num){if (sg[num] != -1) return sg[num];bool vis[maxm];memset(vis, false, sizeof vis);for (int i = 0, j; i < 20; ++i)if (num >> i & 1){for (j = i + 1; j < 20; ++j)if (!(num >> j & 1)) break;if (j == 20) continue;int temp = num - (1 << i) + (1 << j);vis[getsg(temp)] = true;}for (int i = 0; i < maxm; ++i) if (!vis[i]) return sg[num] = i;}int m;int main(){//必须编译过才能交int ik, i, j, k, kase;memset(sg, -1, sizeof sg);scanf("%d", &kase);while(kase--){scanf("%d", &m);int ans = 0;for (i = 0; i < m; ++i){int n, num, ret = 0;scanf("%d", &n);while(n--){scanf("%d", &num);num--;ret += 1 << num;}ans ^= getsg(ret);}puts(ans ? "YES" : "NO");}return 0;}
0 0
- HDU 5724 chess sg函数学习
- hdu 5724 - chess (sg函数)
- hdu 5724 Chess(sg函数)
- hdu 5724 Chess SG函数
- HDU 5724 Chess (博弈 状压+sg函数)
- HDU 5724 Chess(博弈,SG函数)
- hdu 5724 Chess(SG函数)
- HDU 5724-Chess-博弈论-sg函数
- HDU 5724 Chess(SG函数 Nim博弈)
- hdu 5724 Chess (SG函数)
- hdu 5724 Chess [状压+SG函数]【博弈】
- HDU-5724 Chess(SG函数+状压)
- hdu 5742 chess SG函数
- HDU 5724 Chess (状压+sg)
- HDU 5724 Chess 从懵逼到学会 SG函数
- hdu 5724 Chess (sg函数 + 状态压缩)
- (组合博弈)(sg函数模版)HDU 5724 Chess
- HDU 1524 A Chess Game 【SG函数】
- Java解析和生成XML
- Android开发——代码中实现WAP方式联网
- EditText去掉光标下划线以及点击隐藏hint
- @JsonIgnoreProperties作用简述
- web前端之JavaScript DOM编程艺术之案例研究:图片库改进版
- HDU 5724 chess sg函数学习
- 学习笔记--时间函数
- 指定eclipse init 启动jdk
- 前端自动化
- 查找(3) 跳跃表
- 为什么不用ZK来做服务发现?
- 邮件的登陆界面
- Java 8新特性探究(七): 深入解析日期和时间-JSR310
- android h5 js 混合开发解决webview加载白屏,不加载网页的问题(硬件加速网页渲染,优化体验)