P10507 Georgia and Bob

这篇题解的注重点不是结论的证明,而是发现结论的思路,所以比较偏感性。证明人人都会,而发现结论的思路才是这题真正值得思考的地方。

感觉这道题不知道阶梯 NIM 自己推出来也不难,在这个建模下思路挺顺的。感觉讲解阶梯 NIM 可以采用这个模型。

显然的博弈论题目,但是局面不好表示,这种情况经典的转化是寻找一个可以刻画局面的特殊量。

考虑到每一次移动棋子只与它与它的前驱之间的距离有关,因此不难想到本题刻画局面的特殊量与相邻元素的差分有关。于是,我们在差分数组上进行分析。

我们又想到,如果先手某一次移动了某一个棋子,那么后手一定可以把这个棋子的后继棋子移动相同的距离。而这个时候,除了这个棋子与这个棋子的后继棋子的后继棋子的差分,其余的差分值是都没有改变的。不考虑这两个棋子的改变,这种操作就是无意义的,因为它什么都没有改变。而且这种情况下后手一定可以这么操作,因为不劣。我们希望构造一个特征量这种操作无意义,因为可以简化局面。

我们再来考虑改变的两个棋子有什么性质。我们发现这两个棋子的排名奇偶性相同,这引导我们思考把棋子按照排名奇偶性分类。再结合希望可以使这种操作无意义,我们希望能构造出一种刻画局面的方式使排名为奇数或者偶数的棋子的差分在某一次操作中的改变可以被忽略。

注意到希望可以被忽略改变的棋子正好也是被先手操作的棋子,而先手又不会操作这些棋子,因为这种操作是无意义的,不优。那我们为什么不直接在局面中删去奇数或偶数棋子中一个的差分呢?

由于最后一个棋子的影响不能忽略,那我们选取从后往前排名为偶数的棋子的差分忽略。这样,每一次操作只能对奇数棋子操作。如果对偶数棋子操作,后手可以立刻对后继棋子进行相同的操作。由于这个棋子与这个棋子的后继棋子的后继棋子都是偶数,它们差分的改变刚好可以被忽略。于是,我们只使用奇数棋子的差分刻画了状态。

最后,再来考虑奇数棋子怎么拿。我们发现在它的差分减一范围内可以随便取多少,因为不会超过上一个偶数棋子。因此,奇数棋子就相当于 NIM 游戏里的一堆石子,这一堆里共有它的差分减一个石子。至此,我们成功将问题转化为了经典的 NIM 博弈问题。

想看理性证明的可以去看别的题解,写的绝对比我这个胡说八道的感性理解好。

#include <bits/stdc++.h>
using namespace std;
long long t,n,a[10000];
int main()
{
scanf("%lld",&t);
while(t--)
{
scanf("%lld",&n);
for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
sort(a+1,a+n+1);
long long sum=0;
for(int i=n;i>=1;i-=2)sum^=(a[i]-a[i-1]-1);
if(sum)printf("Georgia will win\n");
else printf("Bob will win\n");
}
return 0;
}

Luogu P10507 Georgia and Bob 题解的更多相关文章

  1. POJ1704 Georgia and Bob 题解

    阶梯博弈的变形.不知道的话还是一道挺神的题. 将所有的棋子两两绑在一起,对于奇数个棋子的情况,将其与起点看作一组.于是便可以将一组棋子的中间格子数看作一推石子.对靠右棋子的操作是取石子,而对左棋子的操 ...

  2. 【POJ1704】Georgia and Bob(博弈论)

    [POJ1704]Georgia and Bob(博弈论) 题面 POJ Vjudge 题解 这种一列格子中移动棋子的问题一般可以看做成一个阶梯博弈. 将一个棋子向左移动时,它和前面棋子的距离变小,和 ...

  3. [POJ1704]Georgia and Bob 博弈论

    从这开始我们来进入做题环节!作为一个较为抽象的知识点,博弈论一定要结合题目才更显魅力.今天,我主要介绍一些经典的题目,重点是去理解模型的转化,sg函数的推理和证明.话不多说,现在开始! Georgia ...

  4. Georgia and Bob POJ - 1704 阶梯Nim

    $ \color{#0066ff}{ 题目描述 }$ Georgia and Bob decide to play a self-invented game. They draw a row of g ...

  5. 【poj 1704】Georgia and Bob

    Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9776 Accepted: 3222 Description Georgia a ...

  6. POJ1704 Georgia and Bob(Nim博弈变形)

    Georgia and Bob Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14312   Accepted: 4840 ...

  7. Georgia and Bob(POJ 1704)

    原题如下: Georgia and Bob Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12712   Accepted: ...

  8. hdu 4315 Climbing the Hill && poj 1704 Georgia and Bob阶梯博弈--尼姆博弈

    参考博客 先讲一下Georgia and Bob: 题意: 给你一排球的位置(全部在x轴上操作),你要把他们都移动到0位置,每次至少走一步且不能超过他前面(下标小)的那个球,谁不能操作谁就输了 题解: ...

  9. POJ1704 Georgia and Bob

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9771   Accepted: 3220 Description Georg ...

  10. POJ1704 Georgia and Bob (阶梯博弈)

    Georgia and Bob Time Limit: 1000MS   Memory Limit: 10000KB   64bit IO Format: %I64d & %I64u Subm ...

随机推荐

  1. 题解:P10983 [蓝桥杯 2023 国 Python A] 跑步计划

    一眼看,什么 py,不是纯计算题吗? 需要知道的 2023 年是平年,有 365 天. 每个月分别有 31,28,31,30,31,30,31,31,30,31,30,31 天. 计算 一月,十月,十 ...

  2. 解决get请求特殊字符问题

    @Bean public ServletWebServerFactory webServerFactory() { TomcatServletWebServerFactory fa = new Tom ...

  3. Promise 这个新 API 真香!

    Hey, 我是 沉浸式趣谈 本文首发于[沉浸式趣谈],我的个人博客 https://yaolifeng.com 也同步更新. 转载请在文章开头注明出处和版权信息. 如果本文对您有所帮助,请 点赞.评论 ...

  4. VMware 17 Pro 虚拟机从下载到安装的超详细教程,解决你的所有疑问

    VMware 17 Pro介绍 VMware 17 Pro是一款功能强大的虚拟机软件,适用于开发人员.测试人员.系统管理员和教育机构.它可以在一台计算机上模拟运行多台虚拟机,支持Windows.Lin ...

  5. idea 调试的时候变量的值变成了jar包显示

    如图所示,暂时不知道怎么处理. 应该是module的问题.我是上了重建module了,代码不是很多.

  6. 设计模式之“外观模式(门面模式)(Facade)”

    一.外观模式 1.概念 为子系统中的一组接口提供一个一致的界面 此模式定义了一个高层接口 这个接口使得这一子系统更加容易使用 他完美的体现了依赖倒转原则和迪米特法则的思想,是常用模式之一 2.何时使用 ...

  7. 内网服务器离线安装部署 Ollama

    一.安装 Ollama 1.官网下载地址:Releases · ollama/ollama 2.cd至下载目录 3.执行二进制文件安装 sudo tar -C /usr -xzf ollama-lin ...

  8. MSDN I tell you下载方式

    1.复制下载链接 2. 去下载软件粘贴即可 下以百度网盘为例:

  9. 杂七杂八系列----浅谈.NET微服务架构的演变

    服务架构的演变 单体架构=>分布式架构=>SOA架构=>微服务架构=>Service Mesh=>Cloud Native 单体架构/垂直架构 分布式架构 SOA架构 微 ...

  10. 统计SqlServer数据库的表大小

    create table #Data(name varchar(100),row varchar(100),reserved varchar(100),data varchar(100),index_ ...