这真是一道博弈论的好题啊

还是采用OI届的惯用套路,从简单想起


如果只有一堆石子,那么一定先手必胜

如果有两堆石子,那么我们考虑如下两种情况

2.1 两堆石子数量相同,那么无论先手怎么拿,后手都有一种与之对应的方法使两堆重新变得数量相同,直至最后石子被拿完,先手必败

2.2 两堆石子数量不同,那么先手一定有一种策略,可以使两堆石子数量相同,此时状态回归到2.1,后手变成了当前状态的先手,先手必胜

如果有三堆石子呢?

我们一定有一种策略,将三堆石子变为两堆相同的石子,这个稍微理解一下或者手玩一下就可以知道,然后状态又回到了2.1,后手变成了当前状态的先手,先手必胜

如果有四堆石子呢?

我们可以将其拆分成2.1 2.2的情况的组合,总结出结论:

如果有偶数堆石子,若每一个石子堆的数目都为偶数,那么先手必败,否则先手必胜

同样,我们可以得到

若有奇数堆石子,那么先手必胜,(用一次操作变成偶数堆两两对应)

然后这个题就是个大水题辣~

贴代码

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int q[101],num[200];
int main()
{
int n;
while(scanf("%d",&n)!=EOF&&n)
{
memset(num,0,sizeof num);
for(int i=1;i<=n;++i)
scanf("%d",&q[i]),++num[q[i]];
if(n%2)
puts("1");
else
{
int flag=1;
for(int i=1;i<=100;++i)
if(num[i]%2) flag=0;
if(flag)
puts("0");
else puts("1");
}
}
return 0;
}

【POJ 1740】A New Stone Game的更多相关文章

  1. bzoj 2295: 【POJ Challenge】我爱你啊

    2295: [POJ Challenge]我爱你啊 Time Limit: 1 Sec  Memory Limit: 128 MB Description ftiasch是个十分受女生欢迎的同学,所以 ...

  2. 【链表】BZOJ 2288: 【POJ Challenge】生日礼物

    2288: [POJ Challenge]生日礼物 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 382  Solved: 111[Submit][S ...

  3. BZOJ2288: 【POJ Challenge】生日礼物

    2288: [POJ Challenge]生日礼物 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 284  Solved: 82[Submit][St ...

  4. BZOJ2293: 【POJ Challenge】吉他英雄

    2293: [POJ Challenge]吉他英雄 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 80  Solved: 59[Submit][Stat ...

  5. BZOJ2287: 【POJ Challenge】消失之物

    2287: [POJ Challenge]消失之物 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 254  Solved: 140[Submit][S ...

  6. BZOJ2295: 【POJ Challenge】我爱你啊

    2295: [POJ Challenge]我爱你啊 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 126  Solved: 90[Submit][Sta ...

  7. BZOJ2296: 【POJ Challenge】随机种子

    2296: [POJ Challenge]随机种子 Time Limit: 1 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 114  Solv ...

  8. BZOJ2292: 【POJ Challenge 】永远挑战

    2292: [POJ Challenge ]永远挑战 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 513  Solved: 201[Submit][ ...

  9. 【POJ 1125】Stockbroker Grapevine

    id=1125">[POJ 1125]Stockbroker Grapevine 最短路 只是这题数据非常水. . 主要想大牛们试试南阳OJ同题 链接例如以下: http://acm. ...

随机推荐

  1. 38.Odoo产品分析 (四) – 工具板块(7) – 车队管理(2)

    查看Odoo产品分析系列--目录 接上一篇Odoo产品分析 (四) – 工具板块(7) – 车队管理(1) 4 显示及状态说明 合同默认以列表视图显示:  当合约到期时,以红色显示,并显示状态为待关闭 ...

  2. ionic获取表单input的值的两种方法

    1.参数传递法 直接在input处使用 #定义参数的name值,注意在ts中参数的类型 html页面: <ion-input type="text" placeholder= ...

  3. [aspnetcore.apidoc]一款很不错的api文档生成工具

    AspNetCore.ApiDoc 简单徐速一下为什么选用了aspnetcore.apidoc 而没有选用swagger 最初我们也有在试用swagger,但总是有些感觉,感觉有点不满意,就但从api ...

  4. DICOM中检查时间 CT和增强CT、MR和增强MR

    CT 的第一张到倒数第二张的时间0040,0002(ScheduledProcedureStepStartDate)DA:2008-10-27;0040,0003(ScheduledProcedure ...

  5. c/c++ 多线程 boost的读写(reader-writer)锁

    多线程 boost的读写(reader-writer)锁 背景:保护很少更新的数据结构时,c++标准库没有提供相应的功能. 例如:有个DNS条目缓存的map,基本上很少有更新,大部分都是读取,但是偶尔 ...

  6. Ubuntukylin 14.04 系统语言改成中文[转]

    1.在左侧点击"system setting" 2.按在图中方法设置 3.重启系统   参考地址:http://hi.baidu.com/thj2080/item/ae8e5dce ...

  7. Python基础——5模块

    使用模块 ‘the first line is zhushi’ _author_ = ‘syz’ import sys def test(): args = sys.argv if len(args) ...

  8. 如何用Nginx解决前端跨域问题?

    前言 在开发静态页面时,类似Vue的应用,我们常会调用一些接口,这些接口极可能是跨域,然后浏览器就会报cross-origin问题不给调. 最简单的解决方法,就是把浏览器设为忽略安全问题,设置--di ...

  9. MySQL之表相关操作

    一 存储引擎介绍 存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制 详见:http://www.cnblogs.com/linhaifeng/articles/7213670.html ...

  10. 面试3——java集合类总结(Set)

    Set 集合 和List一样,继承Collection接口,不同的是Set中不能包含重复的元素,无序,并且最多只能允许一个null值.Set常见的实现类有:HashSet.TreeSet和Linked ...