【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1115

【题目大意】

  有N堆石子,除了第一堆外,每堆石子个数都不少于前一堆的石子个数。
  两人轮流操作每次操作可以从一堆石子中移走任意多石子,
  但是要保证操作后仍然满足初始时的条件谁没有石子可移时输掉游戏。问先手是否必胜。

【题解】

  我们定义最后一堆以及下标与其相差为偶数的堆为偶堆石子,其余的为奇堆石子,
  我们发现不管奇堆石子做什么操作,只要在偶堆石子中做相应的操作就可以抵消,
  因此决定这个游戏胜负的是奇堆石子和后一个偶堆石子之间的差值,
  其差值序列等同于NIM游戏,因此求出其sg值即可。

【代码】

#include <cstdio>
using namespace std;
const int N=1010;
int n,a[N],T;
int main(){
scanf("%d",&T);
while(T--){
scanf("%d",&n);
int sg=0;
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
for(int i=n;i;i--)if(!((n-i)&1))sg^=(a[i]-a[i-1]);
puts(sg?"TAK":"NIE");
}return 0;
}

最新文章

  1. &lt;&lt;&lt; Tomcat 部署项目There are no resources that can be added or removed from the server
  2. 高并发应用场景下的负载均衡与故障转移实践,AgileEAS.NET SOA 负载均衡介绍与实践
  3. 64位Windows2008下插入Oracle中文乱码问题解决
  4. 使用中国版 Office 365 -- Team Site分享
  5. ES6新特性:let和const的使用
  6. 51nod1346 递归
  7. C++中的仿函数,std::function和bind()的用法
  8. Java cookie的使用
  9. 让大蛇(Python)帮你找工作 之增强版
  10. 【转】AFNetworking之于https认证
  11. 浙大pat1050题解
  12. Hibernate最简单教程
  13. PyCharm中Directory与Python package的区别
  14. 201521123077 《Java程序设计》第13周学习总结
  15. Kill 进程
  16. Linux文件系统的介绍
  17. Python测试模块doctest
  18. 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图与控制器传递数据
  19. GBDT 详解分析 转+整理
  20. Linux net core docker hello world 简单使用

热门文章

  1. Spring boot 集成Dubbox(山东数漫江湖)
  2. 【HNOI】d 最小割
  3. nodejs入门教程之http的get和request简介及应用
  4. linux 下 /bin /sbin 的区别 -- (转)
  5. Android控件——监听按钮的点击事件
  6. Android控件——TextView,EditText
  7. 【转】linux下杀死进程
  8. 第三周main参数传递-1 课堂测试
  9. document.onclick在ios上不触发的解决方法与touchstart点击穿透处理
  10. 工具安装===Sublime Text-安装