uvalive(NIM博弈)
2015-07-26 11:11
351 查看
题意:
给出有n堆石子;然后每次选一堆,取不能超过一半;谁不能取了,谁就输了;
思路:
标准NIM博弈题;不过还是ai 太大,我们不能求出所有sg值;
所以先求小部分sg值;然后找规律;
观察得出;sg(n) = n % 2 == 0 ? n/2 : sg(n/2);
给出有n堆石子;然后每次选一堆,取不能超过一半;谁不能取了,谁就输了;
思路:
标准NIM博弈题;不过还是ai 太大,我们不能求出所有sg值;
所以先求小部分sg值;然后找规律;
观察得出;sg(n) = n % 2 == 0 ? n/2 : sg(n/2);
#include<cstdio> #include<cstring> #define ll long long ll 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"); else printf("NO\n"); } return 0; }
相关文章推荐
- 传感器获取旋转矩阵R,机身坐标系和世界坐标系的映射remapR,获得旋转角度 orientationValues;
- windows下FileZilla使用sftp(SSH-2)
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- [leetcode 80, Medium] Remove Duplicates from Sorted Array II
- 设计模式_状态模式
- 编写spring配置文件时,不能出现帮助信息
- 熄灯问题(百练2811)
- java里为什么主函数前面要加static修饰 2015-07-26 11:10 3人阅读 评论(0) 收藏
- POJ 1679 The Unique MST 次小生成树
- crossApp初级-CAIamgeView-6
- Leetcode 64(Minimum Path Sum)
- 2.app recommendation with very sparse datasets
- DOS 批处理 知识点 MFC
- const
- HDU 1222 Wolf and Rabbit 幸存的兔子
- 洗牌算法
- JavaWeb学习笔记:第一个 WEB 应用程序
- apache2.4.9允许外网访问的方法
- 学习中收集的一些有关网页UI设计、前端开发的相关知识网址分享,赶紧收藏走起。。。
- 黑马程序员——Java基础-IO流