http://acm.split.hdu.edu.cn/showproblem.php?pid=4994

题意:现在有两个人在取石子,共有n堆石子,每堆石子取完后才可以取下一堆石子,最后一个取石子的人胜利输出'Yes',否则输出'No'

分析:要想看最后一堆石子是谁取走的,我们则需要判断在前n-1堆石子中,主动权在谁的手上。试想,除了在迫不得已的情况下(a[i]==1)不得不这么取,两个人都可以通过取(1-a[i])不等的石子来确保自己手里的主动权。倘若在遇到比1大的数字时,只需要判断在这个数字前面有几个1,继而来判断现在主动权在谁的手上。

若有(ans%2==0)个1,则肯定是第一个人取得胜利,反之第二个人。

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <string>
#include <vector>
#include <algorithm>
#include <map>
#include <queue>
#include <stack>
#include <math.h> using namespace std; #define INF 0x3f3f3f3f
const int maxn = ;
typedef long long LL;
int a[maxn]; int main()
{
int T, n; scanf("%d", &T); while(T --)
{
scanf("%d", &n); memset(a, , sizeof(a));
for(int i=; i<=n; i++)
scanf("%d", &a[i]); if(n==) printf("Yes\n");
else
{
int ans = ; for(int i=; i<n; i++)
{
if(a[i]>) break;
ans ++;
} if(ans % == )
printf("Yes\n");
else
printf("No\n"); } }
return ;
}

最新文章

  1. 报表引擎API开发入门—简单程序数据集
  2. Android的Activity屏幕切换动画(一)-左右滑动切换
  3. [ZZ] RGBM and RGBE encoding for HDR
  4. Python进阶07 函数对象
  5. 咏南多层开发框架支持最新的DELPHI 10 SEATTLE
  6. tiny210(s5pv210)移植u-boot(基于 2014.4 版本号)——NAND 启动
  7. android 实现自己定义状态栏通知(Status Notification)
  8. bootstrap读书笔记
  9. C++的一些编程规范(基于google)
  10. C语言 结构体数组保存到二进制文件中
  11. IOS开发中UIAlertController(警告框)的使用
  12. LeetCode 33. Search in Rotated Sorted Array(在旋转有序序列中搜索)
  13. 如何在Raspberry Pi 3B中安装RASPBIAN
  14. Java代码规范与质量检测插件SonarLint
  15. Linux系统初始化配置项(centos7)
  16. 2018-08-16 中文代码之Spring Boot添加基本日志
  17. MySQL:explain 和 慢查询日志
  18. ASCLL码中的一些小知识
  19. 使用Python编写简单的端口扫描器的实例分享【转】
  20. Jenkins部署资料

热门文章

  1. js 添加广告
  2. OrmLite数据库的使用方法
  3. win7下IIS错误:&quot;无法访问请求的页面,因为该页的相关配置数据无效&quot;的解决方法(转)
  4. JsonResult序列化并保存json文件 以及对json文件读取反序列
  5. [cross compile]cygwin和mingw
  6. .NET:序列化和反序列化
  7. 关闭和开启oracle
  8. IRaster、IRasterlayer、IRasterdataset之间的转换
  9. 17. Word Break &amp;&amp; Word Break II
  10. 剑指Offer:面试题25——二叉树中和为某一值的路径(java实现)