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

还是采用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. 浅谈OA系统与Portal门户的区别

    随着社会信息化的发展与进步,OA办公自动化软件打破了传统复杂的办公方式,使各个行业实现了高效的无纸化办公.由此一来OA快速成长为继财务软件.ERP软件之后的第三大管理软件.随着企业信息化系统的不断增多 ...

  2. spring学习总结——高级装配学习四(运行时:值注入、spring表达式)

    前言: 当讨论依赖注入的时候,我们通常所讨论的是将一个bean引用注入到另一个bean的属性或构造器参数中.bean装配的另外一个方面指的是将一个值注入到bean的属性或者构造器参数中.在没有学习使用 ...

  3. 容器化系列 - GitLab启动和配置 on Docker

    本文简单说明了如何在Docker容器中运行GitLab. 1 准备工作 1.1 下载镜像 $ docker pull docker.io/gitlab/gitlab-ce:latest 1.2 创建持 ...

  4. [20190402]对比_mutex_wait_scheme不同模式cpu消耗.txt

    [20190402]对比_mutex_wait_scheme不同模式cpu消耗.txt --//前几天做了sql语句在mutexes上的探究.今天对比不同_mutex_wait_scheme模式cpu ...

  5. Kafka相关内容总结(存储和性能)

    Kafka消息的存储 Kafka的设计基于一种非常简单的指导思想:不是要在内存中保存尽可能多的数据,在需要时将这些数据刷新(flush)到文件系统,而是要做完全相反的事情.所有数据都要立即写入文件系统 ...

  6. jenkins+gitlab配置

    jenkins配置 插件配置 Jenkins要实现持续集成自动部署需要安装  gitlab  maven Publish Over SSH  Git等几个插件 查看已经安装的插件 jenkins上集成 ...

  7. Linux VMware新添加网络适配器找不到配置文件问题

    VMware centos 新添加网卡没有识别,在做 Linux 实验时经常遇到需要双网卡的情况,VMware 新添加网卡后Linux是不会主动创建 ifcfg-eth* 文件的,重启服务器和重启网络 ...

  8. 解决topjui中工具栏按钮删除刷新从属表

    遇到了这么个问题:当在从属datagrid表格中,点击主表工具栏按钮中的删除,通过后台的多表删除的sql,返回给前台之后,从属表的数据成功在数据库中删除,但是在前台页面显示的时候,只刷新了主表,子表未 ...

  9. 【MOS】在不同版本和平台之间进行还原或复制 (文档 ID 1526162.1)--跨版本恢复

    参考链接:http://blog.itpub.net/26736162/viewspace-1549041/

  10. python之shell

    import subprocess # 返回命令执行结果 # result = subprocess.call('ls -l', shell=True) # result = subprocess.c ...