uvalive(NIM博弈)
来源:互联网 发布:js回调函数原理 编辑:程序博客网 时间:2024/06/07 21:26
题意:
给出有n堆石子;然后每次选一堆,取不能超过一半;谁不能取了,谁就输了;
思路:
标准NIM博弈题;不过还是ai 太大,我们不能求出所有sg值;
所以先求小部分sg值;然后找规律;
观察得出;sg(n) = n % 2 == 0 ? n/2 : sg(n/2);
#include<cstdio>#include<cstring>#define ll long longll SG(ll x){return x % 2 == 0 ? x / 2 : SG(x / 2);}int main() {int t;scanf("%d", &t);while(t--) {ll sum = 0;ll tmp;int n;scanf("%d", &n);for(int i = 0; i < n; i++) {scanf("%lld", &tmp);sum ^= SG(tmp);}if(sum)printf("YES\n");elseprintf("NO\n");}return 0;}
0 0
- uvalive(NIM博弈)
- nim 博弈
- Nim博弈
- Nim博弈
- NIM 博弈
- Nim 博弈
- Nim博弈
- nim 博弈
- Nim博弈
- Nim博弈
- Nim博弈
- nim博弈
- nim博弈
- (博弈Nim)Nim
- 博弈-Nim博弈
- [nim博弈扩展 sg函数] UVALive 3668 A Funny Stone Game
- Nim博弈变形(anti-nim)
- Nim(Nim博弈变形)
- 图片裁剪类
- window.onload()和$(document).ready()区别
- OC 多态的运行 学习笔记
- 文件的编码
- 整体代码缩进
- uvalive(NIM博弈)
- Android TextView 支持BBCode的显示
- WebStorm 注册码
- NYOJ 865 解题报告
- 《混合存储综述》 总结
- 可变参数函数
- DownloadManager实现文件下载
- c++ string 类的 ”数值转换“ 操作
- webStorm注册码