通过打表后可以发现,当初始石头数 \(|X - Y| \le 1\) 时先手必败否则先手必胜。

我们考虑使用归纳证明这个结论,显然 \((1, 0), (1, 1)\) 时是成立的。

基于观察,我们可以发现:

  • 对于 \(|X - Y| > 1\) 的情况,先手总存在一种策略使得让后手取得 \(|X' - Y'| \le 1\) 的情况。

  • 对于 \(|X - Y| \le 1\) 的情况,无论先手如何操作后手都必然能取得 \(|X' - Y'| > 1\) 的情况。

对于前者,不妨设 \(X < Y, Y = X + k\),则先手只需从 \(Y\) 中拿出 \(\lceil \frac{k}{4} \rceil \times 2\) 即可。

对于后者,当 \(X = Y\) 时结论显然成立;当 \(Y = X + 1\) 时,两者的差值随 \(Y\) 中取棋数量单调递增,当取最小 \(2\) 个时差值也会超过 \(1\) 因此后者成立。

通过归纳可知判定结论的正确性。

#include <bits/stdc++.h>
using namespace std;
#define int long long
int n, m;
signed main() {
cin >> n >> m;
printf(abs(n - m) <= 1ll ? "Brown" : "Alice");
return 0;
}

基于观察如果发现博弈论的一个状态必然到达其补集,其补集总是存在一种方案到达该状态时,这个状态往往是必败态,通过类似上面的归纳即可证明。

我称这个为博弈论互补状态可转化的必败性。

AT2400 [ARC072B] Alice&Brown的更多相关文章

  1. ARC072 D Alice&Brown 博弈论

    ---题面--- 题解: 题目大意:有2堆石子数分别为x, y的石子,你每次可以从中间的某一堆中取出2i个石子,扔掉i个,并把剩下的i个放到另一堆,无法操作的人就输了. 现在给定x,y,判断先手必赢还 ...

  2. 【AtCoder】ARC072

    ARC072 C - Sequence 直接认为一个数是正的,或者第一个数是负的,每次将不合法的负数前缀和改成+1正数前缀和改成-1 #include <bits/stdc++.h> #d ...

  3. ARC072/ABC059

    AtCoder Regular Contest 072 / Beginner Contest 059 Announcement <br > 猛然发现今天有一场AC.....然后..显示手残 ...

  4. AtCoder刷题记录

    构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和 ...

  5. (HDU 5558) 2015ACM/ICPC亚洲区合肥站---Alice's Classified Message(后缀数组)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5558 Problem Description Alice wants to send a classi ...

  6. 2016中国大学生程序设计竞赛 - 网络选拔赛 J. Alice and Bob

    Alice and Bob Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  7. bzoj4730: Alice和Bob又在玩游戏

    Description Alice和Bob在玩游戏.有n个节点,m条边(0<=m<=n-1),构成若干棵有根树,每棵树的根节点是该连通块内编号最 小的点.Alice和Bob轮流操作,每回合 ...

  8. Alice and Bob(2013年山东省第四届ACM大学生程序设计竞赛)

    Alice and Bob Time Limit: 1000ms   Memory limit: 65536K 题目描述 Alice and Bob like playing games very m ...

  9. 阿里前端框架Alice是个不错的选择

    BootStrap虽然用户群体广大,其整体风格尽管有不少skin可选,但以国情来看还是不好看. 阿里开源的前端框架,个人觉得还是很不错,Alice处处透着支付宝中界面风格的气息,电商感挺强. 以下内容 ...

随机推荐

  1. 【Java例题】3.4求a+aa+aaa+aaaa+... ...+aa...a(n个

    4. package chapter3; import java.util.*; public class demo4 { public static void main(String[] args) ...

  2. [opencv]建立纯色图

    1.建立纯白图片,指定大小 250*250为图片的宽高,可自己设置. Mat white = cv::Mat(250,250,CV_8UC3,Scalar(255,255,255)); 2.建立纯黑图 ...

  3. CS5211|CS5211参数|eDP转LVDS转换器芯片

    CS5211概述 CS5211是一个eDP到LVDS转换器,配置灵活,适用于低成本显示系统.CS5211与eDP 1.2兼容,支持1车道和2车道模式,每车道速度为1.62Gbps和2.7Gbps.CS ...

  4. Oracle对表空间、用户、用户权限的操作

    一.对表空间的操作 1.创建表空间(create tablespace) -- 'hpdb_tablespace' 指定表空间名称 -- 'e:\hpdb.dbf' 指定表空间数据文件名称 -- si ...

  5. mysql语句1-创建库和表

    一.DDL数据定义语言 就是对书库内部的对象进行创建.删除.修改等操作的语言. 关键字:create  drop  alter 1.连接数据库 mysql -u用户名 -p -h指定主机(不指定默认是 ...

  6. CF858D Polycarp's phone book

    题意翻译 有 n 个长度为 9 且只包含数字字符互不相同的串. 需要对于每个串找到一个长度最短的识别码,使得这个识别码当且仅当为这个串的子串. 题目分析 因为范围不是非常大,所以可以将子串筛出来 然后 ...

  7. ApkToolBoxGUI 0.0.8发布了!!

    https://github.com/jiangxincode/ApkToolBoxGUI APKToolBoxGUI是一个程序员常用的小工具合集,有个比较友好的交互界面.主要包含编码转换,时间戳转换 ...

  8. Pytest_参数化(10)

    pytest参数化有两种方式: mark的parametrize标记:@pytest.mark.parametrize(变量名,变量值),其中变量值类型为列表.元组或其它可迭代对象. fixture的 ...

  9. Nginx_安装配置

    一.安装gcc依赖库 检查是否安装(linux默认是安装了的) gcc –version  

  10. 第10组 Alpha冲刺 (4/6)

    1.1基本情况 ·队名:今晚不睡觉 ·组长博客:https://www.cnblogs.com/cpandbb/p/13982696.html ·作业博客:https://edu.cnblogs.co ...