题意:

      给你n堆东西,两个人博弈的去拿,每次最少一个,最多是一堆,必须按顺序那,也就是只有把第一堆的东西拿完了才能去拿第二堆东西,谁先拿完谁胜,问新手是否能胜利。

思路:

      显然是博弈,既然是博弈那么我们首先要干的事就是找必胜状态(或者必败状态),对于任意一组数据(先假设里面没有某一堆里面的个数是1的时候)先手肯定是必胜的,因为先手可以每一次都只给这一堆留一个,让后手去拿这一个,到最后一堆的时候一下子全部拿走,现在把有1的情况加进去,如果在开始就遇到连续的1的话就有可能失去主动权,只有开头连续个1的个数是偶数的时候最后主动权才还是自己的,中间部分有1的情况不用考虑,我们可以先手可以通过全拿完或者给后手留一个来调节自己的必胜状态,还有一个就是全是1的时候记得特判一下。


  1. #include<stdio.h>

  2. int main ()
  3. {
  4. int t ,n ,i ,num;
  5. scanf("%d" ,&t);
  6. while(t--)
  7. {
  8. scanf("%d" ,&n);
  9. int mk = 0;
  10. for(i = 1 ;i <= n ;i ++)
  11. {
  12. scanf("%d" ,&num);
  13. if(num != 1 && !mk) mk = i;
  14. }
  15. if(!mk && n % 2 || mk && (mk - 1) % 2 == 0)
  16. printf("Yes\n");
  17. else printf("No\n");
  18. }
  19. return 0;
  20. }

hdu4994 博弈,按顺序拿球的更多相关文章

  1. 2016蓝桥杯"取球博弈"问题

    较难,网上有能得出正确结果的代码,但是读了一下,像是拼凑出的结果,逻辑不通,代码和注释不符 参考网上代码写了一版,结构相对清晰,注释比较详细 题目很长: 两个人玩取球的游戏.一共有N个球,每人轮流取球 ...

  2. 2012年第三届蓝桥杯C/C++程序设计本科B组省赛 取球博弈

    2012年第三届蓝桥杯C/C++程序设计本科B组省赛 取球博弈 题目描述 **取球博弈 今盒子里有n个小球,A.B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并 ...

  3. LibreOJ 6003. 「网络流 24 题」魔术球 贪心或者最小路径覆盖

    6003. 「网络流 24 题」魔术球 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统计讨论测试数据 ...

  4. 【PowerOJ1739&网络流24题】魔术球问题(最大流)

    题意: 思路: 0.[问题分析] 枚举答案转化为判定性问题,然后最小路径覆盖,可以转化成二分图最大匹配,从而用最大流解决. [建模方法] 枚举答案A,在图中建立节点1..A.如果对于i<j有i+ ...

  5. ural1494 Monobilliards

    Monobilliards Time limit: 1.0 secondMemory limit: 64 MB A monobilliards table set up in a gaming hou ...

  6. 中国大学MOOC-翁恺-C语言程序设计习题集-解答汇总

    中国大学MOOC-翁恺-C语言程序设计习题集 PAT 习题集 02-0. 整数四则运算(10) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standar ...

  7. hdu 4262(线段树)

    题目:有一个圈,可以从某个位置取球,给出原有的顺序,有三种操作,左旋一次,右旋一次,取球,要求按顺序取球,问需要操作多少次 显然操作是确定的,每次将目标球旋转过来,找出左旋和右旋操作少的,然后取球. ...

  8. 中国大学MOOC-翁恺-C语言程序设计习题集(一)

    练习 02-0. 整数四则运算(10) 本题要求编写程序,计算2个正整数的和.差.积.商并输出.题目保证输入和输出全部在整型范围内. 输入格式: 输入在一行中给出2个正整数A和B. 输出格式: 在4行 ...

  9. 取球游戏_nyoj_518(博弈-蓝桥杯原题).java

    取球游戏 时间限制: 1000 ms  |  内存限制: 65535 KB 难度: 2   描述 今盒子里有n个小球,A.B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下 ...

随机推荐

  1. 剑指 Offer 14- I. 剪绳子 + 动态规划 + 数论

    剑指 Offer 14- I. 剪绳子 题目链接 还是343. 整数拆分的官方题解写的更清楚 本题说的将绳子剪成m段,m是大于1的任意一个正整数,也就是必须剪这个绳子,至于剪成几段,每一段多长,才能使 ...

  2. Web微信协议

    [文档]Web微信协议 1.登录 1.1 获取uuid(get) 请求 https://login.wx.qq.com/jslogin?appid=wx782c26e4c19acffb&red ...

  3. python爬虫(正则取数据)读取表格内的基金代码后爬取基金最新净值,同时写到对应的表格中,基于最近一次购买净值计算出涨跌幅(名字有点长)

    最近基金跌的真够猛,虽说是定投,但大幅度下跌,有时候适当的增加定投数也是降低平均成本的一种方式 每天去看去算太费时间,写了个爬虫,让他自动抓数据后自动计算出来吧 实现逻辑: 1.创建了一个excel表 ...

  4. 002-JVM部分

    JVM部分数据整理 一.运行时数据区域 Java运行时内存区域主要分为线程私有区域[程序计数器.虚拟机栈.本地方法区].线程共享区域[Java堆.方法区].直接内存(不受JVM GC管理) 1.线程私 ...

  5. 【odoo14】第十八章、自动化测试

    当我们开发大型应用的时候,通过自动化测试可以大幅提高应用的健壮性.每年,odoo都会发布新版本,自动化测试对于应用的回归测试非常有帮助.幸运的是,odoo框架有不同自动化测试用例.odoo主要包括三种 ...

  6. 关于Python编写时候的一些数据格式调用问题

    utf-8 可变长度字符串,互联网通用,目的是减少内存占用Unicode 万国码, 对于英文多占用一个字节ASCII码 美国编码1个字节Gb2313 中国编码 编码 encode解码 decodepy ...

  7. POJ_1273 Drainage Ditches 【网络流】

    一.题面 Drainage Ditches 二.分析 网络流的裸题. 1 Edmonds-Karp算法 求解网络流其实就是一个不断找增广路,然后每次找到一条增广路后更新残余网络的一个过程. EK算法主 ...

  8. Rust 内置 trait :PartialEq 和 Eq

    GitHub: https://github.com/storagezhang Emai: debugzhang@163.com 华为云社区: https://bbs.huaweicloud.com/ ...

  9. 实验四 Python综合实践

    课程:<Python程序设计> 班级:1843 姓名:章森洋 学号:20184307 实验教师:王志强 实验日期:2020年5月16日 必修/选修: 公选课 1.实验内容 此处填写实验的具 ...

  10. Android 学习之活动的生命周期

    •返回栈 Android 中的活动是可以叠层的: 我们每启动一个新的活动,就会覆盖在原活动之上: 然后点击 Back 键会销毁最上面的活动,下面一个活动就会重新显示出来: 其实 Android 是使用 ...