题目链接:P4101 人人尽说江南好

算法分析

无论怎么操作,最终合并的次数为奇数,则先手胜,否则先手败。先假设一种合并方案,双方尽量合并成mmm,然后再从1开始合并。这样总共的合并次数为:cnt=n/m∗(m−1)+((n%m)?(n%m−1):0)cnt = n/m*(m-1)+((n \% m)?(n\% m-1):0)cnt=n/m∗(m−1)+((n%m)?(n%m−1):0)。我们称此为套路。

如果此时cnt为奇数,我们知道先手胜。先手必胜,肯定会按照套路走,如果后手不按照套路出牌呢?讨论下:

最大堆石子数 <=m−2<=m-2<=m−2

  1. 后手将1和最大堆合并,这是按照套路走的,先手继续按照套路走即可。

  2. 后手将两个1合并,得到一个为2的堆,先手将这个为2的堆和最大堆合并,将后手的思路拉回到套路上来。

最大堆石子数等于m−1m-1m−1

  1. 后手将1和最大堆合并,没有区别。

  2. 后手合并两个1,得到一个为2的堆,先手将1合并到最大堆,此时最大堆已满。后面又可以按照套路来了。

无论怎么操作,先手都可以稳住套路,保证最后的合并次数不变。

后手胜的情况也是一样的。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
#define ll long long
ll n, m, cnt;
int main()
{int T;scanf("%d", &T);while (T--){scanf("%lld%lld", &n, &m);cnt = n / m * (m - 1) + ((n % m) ? (n % m - 1) : 0); // ?:运算符得用括号,否则错  if (cnt & 1) printf("0\n");  else printf("1\n");}return 0;
}

反思与总结

  1. 在用条件运算符时,整体得加括号,否则错误。

  2. 该题思路:确定一种方案,证明其他方案最终和该方案等效。

P4101 人人尽说江南好相关推荐

  1. 博弈论——P4101 人人尽说江南好

    博弈论--P4101人人尽说江南好 题目 算法分析 Code 反思与总结 对博弈论还不是那么明白的小伙伴请先阅读 这篇文章 题目 Luogu: P4101 [HEOI2014]人人尽说江南好 游戏的规 ...

  2. bzoj 3609: [Heoi2014]人人尽说江南好(博弈)

    3609: [Heoi2014]人人尽说江南好 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 567  Solved: 407 [Submit][S ...

  3. BZOJ 3609: [Heoi2014]人人尽说江南好

    3609: [Heoi2014]人人尽说江南好 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 474  Solved: 340 [Submit][S ...

  4. 人人尽说江南好 题解 [博弈论]

    人人尽说江南好 传送门:[HEOI2014]人人尽说江南好 先放词: 菩萨蛮 韦庄 人人尽说江南好,游子只合江南老,青水碧于天,画船听雨眠. 垆边人似月,皓腕凝霜雪,未老莫还乡,还乡须断肠. 题目分析 ...

  5. 【博弈论/思维题】人人尽说江南好

    选自HEOI2014 BZOJ 3609: [Heoi2014]人人尽说江南好 因为游戏规定,首先无法合并的一方判输, 每人都会使用最优策略, 那么贪心的想, 最优合并方案最后石子排布情况一定为m, ...

  6. BZOJ3609 Heoi2014 人人尽说江南好【推理+结论】

    BZOJ3609 Heoi2014 人人尽说江南好 Description 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家),最近他 想起了小时 ...

  7. [HEOI2014] 人人尽说江南好

    [HEOI2014] 人人尽说江南好 题目大意:一个博弈游戏,地上\(n\)堆石子,每堆石子有\(1\)个,每次可以合并任意两个石子堆\(a,b\),要求\(a + b \leq m\),问先手赢还是 ...

  8. 【BZOJ3609】人人尽说江南好(博弈论)

    [BZOJ3609]人人尽说江南好(博弈论) 题面 BZOJ 洛谷 题解 昨天考试的时候,毒瘤出题人出了一个\(noip\)博弈十合一然后他就被阿鲁巴了,因为画面残忍,就不再展开. 这题是他的十合一中 ...

  9. P4101 [HEOI2014]人人尽说江南好

    P4101题解 第一次写博客,用的不太好~ 看了好多大佬的题解,发现有的地方想不通,研究了一下,完善了证明过程. 题目描述 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Pla ...

最新文章

  1. 网上商城留言板的实现——留言展示到留言板
  2. SQL Server在存储过程中编写事务处理代码的三种方法
  3. SAP CRM中间件Object出现wait状态的原因调试
  4. Evernote,有道云笔记以及Ms Onenote 2011
  5. 将一个类改成线程_看了这个有趣的例子,相信你就秒懂多线程同步了
  6. NFrog[NHibernate代码工具]发布第一个版本
  7. 数据库篇之[bsp_advertpositions]数据表-BrnShop1.9升级至2.1升级说明(非官方版本)...
  8. 我的眼眸,等你路过我的容颜
  9. 字节跳动重大宣布:取消!员工炸了:直接降薪1
  10. 2023 新版 微信公众号无限回调系统源码
  11. 我的世界(9)-服务器地图创建、管理(Multiverse插件)
  12. 苹果或研发第二代智能手表
  13. 什么是数字化转型? 怎样算是转型?
  14. win11右键直接显示更多选项
  15. 安装完jdk后,cmd 运行java和java -version都行,就是运行javac不行
  16. 紧跟年轻潮流趋势,嘻哈歌手代言三星Galaxy C8发布
  17. metasploit linux 提权
  18. 单片机+DHT11的温湿度采集监测系统,LCD1602显示,带报警功能,C代码、原理图和Proteus仿真
  19. 海外研发2nm,中国推进石墨烯芯片实现弯道超车,将再无需光刻机
  20. 微信转发抽奖+php,jQuery+PHP实现微信转盘抽奖功能的方法

热门文章

  1. EXCEL中将时间戳转换为日期格式
  2. Android Cookie 解析并且设置给WebView 保持登陆状态
  3. 好用的手机号码归属地、吉凶及号码估值查询API接口
  4. 西安电子科技大学833真题_2021年西电833amp;834专业课真题押题卷来临!购买全程讲课班即可获得...
  5. 《特性:Metrics》直播干货
  6. Linux系统调优详解(三)——CPU状态查看相关命令
  7. 细胞膜包被纳米粒(M-NPs)|双重细胞膜包裹负载siEFNA1蛋黄脂质纳米药物|生物膜包裹血管生长因子
  8. 计算机原理之CPU缓存一致性
  9. AI英雄 | 对话Citrix副总裁:人类的意义在于灵魂 通用AI不可能实现!
  10. fullcalendar之我思故我在