~~~题面~~~

题解:

  题目大意:有2堆石子数分别为x, y的石子,你每次可以从中间的某一堆中取出2i个石子,扔掉i个,并把剩下的i个放到另一堆,无法操作的人就输了。

  现在给定x,y,判断先手必赢还是先手必输。

  表示这题推出了一个性质,,,然后,,,就没有然后了。

  看题解还是比较妙的。

  结论:如果$|x - y| <= 1$那么后手必赢,反之先手必赢。

  证明:

    假设现在有$|x - y| \le 1$,我们不妨设$x > y$,那么$y = x - k$.所以如果我们从x中拿出2i个石子,那么x,y将变为:

    $x' = x - 2i$   $y' = x - k + i$

    这时我们可以发现$y' - x' = -k + 3i$,因为i是非负的,而k因为$|x - y| \le 1$,所以$k \le 1$,所以3i的大小至少为3,而k最大为1,所以$y' - x'$至少为2,那么这个时候后手一定可以移动。

    现在来考虑后手怎么动:

    首先我们可以推出一个性质,当一开始的石子数为x , y时,先手取了一步变成了$x - 2i$和$y + i$,这个时候后手只需要从y中拿同样的2i个,就可以使得石子数变为$x - i$和$y - i$,而我们知道,两个数同时减去同一个数,它们的差是不会变化的,所以这个时候的$x'$和$y'$依然相差小于等于1,这就转化成了第一种情况

 #include<bits/stdc++.h>
using namespace std;
#define R register int
#define LL long long LL x, y;
void work()
{
scanf("%lld%lld", &x, &y);
if(abs(x - y) <= ) printf("Brown\n");
else printf("Alice\n");
} int main()
{
freopen("in.in", "r", stdin);
work();
fclose(stdin);
return ;
}

ARC072 D Alice&Brown 博弈论的更多相关文章

  1. AT2400 [ARC072B] Alice&Brown

    通过打表后可以发现,当初始石头数 \(|X - Y| \le 1\) 时先手必败否则先手必胜. 我们考虑使用归纳证明这个结论,显然 \((1, 0), (1, 1)\) 时是成立的. 基于观察,我们可 ...

  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. Multiplication Game

    Description Alice and Bob are in their class doing drills on multiplication and division. They quick ...

  6. hdu 3544 Alice's Game 博弈论

    博弈论+二分! 后一人会尽量选前一人切小的一块切!! 代码如下: #include<iostream> #include<stdio.h> #define I1(x) scan ...

  7. zoj 3529 A Game Between Alice and Bob 博弈论

    思路:每个数的SG值就是其质因子个数,在进行nim博弈 代码如下: #include<iostream> #include<cstdio> #include<cmath& ...

  8. hdu 4111 Alice and Bob 博弈论

    这里有2种方法: 方法一:求SG函数 sg[i][j]:i表示1的个数,j表示合并操作的步数. 这共有4种操作: 1.消除一个1: 2.减掉一个1: 3.合并2个1: 4.把1合并到另外不是1中. 代 ...

  9. ZOJ 3529 A Game Between Alice and Bob(博弈论-sg函数)

    ZOJ 3529 - A Game Between Alice and Bob Time Limit:5000MS     Memory Limit:262144KB     64bit IO For ...

随机推荐

  1. Android Preference 设置偏好全攻略

    Android 设置是每个App必不可小的东西,看似很简单,但是初学不熟悉的很花时间去研究,特别样式兼容方面,以及有自定义设置的需求,下面是对用法做一个总结 Preference结构 界面结构看下图 ...

  2. Selenium(Python)驱动Firefox浏览器

    我的版本是Firefox Setup 52.7.0.exe+geckodriver-v0.15.0-win64.zip, 把驱动geckodriver.exe放到Python安装目录下, 也可以指定驱 ...

  3. 一句话描述 Java 设计模式

    Java 设计模式 设计模式是对应于不同的应用目的的.   适配:将特定功能接口适配需求方   桥接:面向两个接口,无关接口的实现: 抽象化与实现化解耦,使得二者可以独立变化:例:笔与图形,笔可以画图 ...

  4. Spring Cloud(十):服务网关 Zuul(路由)【Finchley 版】

    Spring Cloud(十):服务网关 Zuul(路由)[Finchley 版]  发表于 2018-04-23 |  更新于 2018-05-09 |  通过之前几篇 Spring Cloud 中 ...

  5. [leetcode-662-Maximum Width of Binary Tree]

    Given a binary tree, write a function to get the maximum width of the given tree. The width of a tre ...

  6. php5.4以上运行yii框架出现问题的解决方法

    Ubuntu Server 下安装 Mcrypt Php Extension http://blog.archean.me/2013/10/22/install-mcrypt-php-extensio ...

  7. 算法与数据结构实验题 6.3 search

    ★实验任务 可怜的 Bibi 刚刚回到家,就发现自己的手机丢了,现在他决定回头去搜索 自己的手机. 现在我们假设 Bibi 的家位于一棵二叉树的根部.在 Bibi 的心中,每个节点 都有一个权值 x, ...

  8. 使用cout进行格式化

    以下内容摘自木缥缈的博客 使用cout进行格式化 ostream插入运算符将值转换为文本格式.在默认情况下,格式化值的方式如下. * 对于char值,如果它代表的是可打印字符,则将被作为一个字符显示在 ...

  9. 福大软工1816 · 第五次作业 - 结对作业2_map与unordered map的比较测试

    测试代码: #include <iostream> using namespace std; #include <string> #include <windows.h& ...

  10. holoeverywhere修改actionbar背景

    <style name="Holo.Theme.Light.MyActionBar" parent="Holo.Base.Theme.Light.DarkActio ...