题目链接:https://www.luogu.org/problem/P3150

这道题目是博弈论的入门题。

我们以 必胜态必败态 来讲解这个问题。

首先,下面的图片演示了前8个数的必胜态和必败态:



可以发现:

  • 当 \(m=1,3,5,7\) 的时候都是必败态;
  • 当 \(m=2,4,6,8\) 的时候都是必胜态。

我们不妨用数学归纳法来证明一下:

对于任意一个大于8的 \(m\) ,假设我已知它前面的 \(m-1\) 个数的状态已经确定,并且奇数都是必败态,偶数都是必胜态。则:

  • 如果 \(m\) 是奇数,则它无论如何分,都是分成一个小于 \(m\) 的奇数和一个小于 \(m\) 的偶数,也就是无论如何分都会留给对手一个必胜态(偶数),则 \(m\) 对我就是必败态;
  • 如果 \(m\) 是偶数,则它可以分成两个奇数(此时留给对手两个必败态),也可以分成两个偶数(此时留给对手两个必胜态),然而因为我绝对聪明,所以我肯定会分成两个奇数,所以此时 \(m\) 对我就是必胜态。

综上所述,可以得到结论:所有的偶数都是必胜态,所有的奇数都是必败态。

实现代码如下:

#include <bits/stdc++.h>
using namespace std;
int n, m;
int main() {
cin >> n;
while (n --) {
cin >> m;
puts( m % 2 ? "zs wins" : "pb wins");
}
return 0;
}

洛谷P3150 pb的游戏(1)题解 博弈论入门的更多相关文章

  1. 洛谷P3150 pb的游戏(1) 题解

    题目链接: https://www.luogu.org/problemnew/show/P3150 分析: 这道题是一道典型的入门博弈论.我们可以进行如下考虑: 先引入一个奇偶的性质: 奇数=奇数+偶 ...

  2. 洛谷 [P3150] pb的游戏

    博弈论基础 本题可以视作P2148 E&D 的前置技能 本题直接判断奇偶性来求解, 证明就是2148 的证明 不贴代码

  3. 洛谷P1288 取数游戏II 题解 博弈论

    题目链接:https://www.luogu.org/problem/P1288 首先,如果你的一边的边是 \(0\) ,那么你肯定走另一边. 那么你走另一边绝对不能让这条边有剩余,因为这条边有剩余的 ...

  4. 洛谷P1274-魔术数字游戏

    Problem 洛谷P1274-魔术数字游戏 Accept: 118    Submit: 243Time Limit: 1000 mSec    Memory Limit : 128MB Probl ...

  5. 洛谷P1118 数字三角形游戏

    洛谷1118 数字三角形游戏 题目描述 有这么一个游戏: 写出一个1-N的排列a[i],然后每次将相邻两个数相加,构成新的序列,再对新序列进行这样的操作,显然每次构成的序列都比上一次的序列长度少1,直 ...

  6. 洛谷P1854 花店橱窗布置 分析+题解代码

    洛谷P1854 花店橱窗布置 分析+题解代码 蒟蒻的第一道提高+/省选-,纪念一下. 题目描述: 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定 ...

  7. P3150 pb的游戏(1)

    P3150 pb的游戏(1)选偶数,这一轮一定会活,选奇数,自己这一轮可能会死,并且(如果自己这一轮没死)下一轮对手一定可以活,因为选了奇数,就会被分解成奇数和偶数. #include<iost ...

  8. 洛谷P4606 [SDOI2018]战略游戏 【圆方树 + 虚树】

    题目链接 洛谷P4606 双倍经验:弱化版 题解 两点之间必经的点就是圆方树上两点之间的圆点 所以只需建出圆方树 每次询问建出虚树,统计一下虚树边上有多少圆点即可 还要讨论一下经不经过根\(1\)的情 ...

  9. HAOI2006 (洛谷P2341)受欢迎的牛 题解

    HAOI2006 (洛谷P2341)受欢迎的牛 题解 题目描述 友情链接原题 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之 ...

随机推荐

  1. Android学习笔记之mainfest文件中android属性

    android:allowTaskReparenting 是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务. -------------------------------- ...

  2. awk notes

    字符串拼接 cat sql | awk '{print " ALTER TABLE  tableA   ALTER " $1 " TYPE " $2 " ...

  3. Android——系统权限

    Android是一个特权分隔的操作系统,每一个应用程序运行在不同的系统身份中(Linux的user ID和group ID).系统部分和不同的身份被隔离开来.因此,Linux隔离了应用程序(与其它程序 ...

  4. BootstrapValidator实现注册校验和登录错误提示效果(转)

    使用BootstrapValidator进行注册校验和登录错误提示,具体内容如下 1.介绍 在AdminEAP框架中,使用了BootstrapValidator校验框架,本文以注册校验的用户名.登录名 ...

  5. 备考2019年6月份PMP考试-分享一些考试笔记(二)

    最新比较经典的100道试题,有备考的小伙伴可以练练手,文章末尾附答案. 1     一个项目经理在运作一个数据中心安装项目.他发现相关方很恼火,因为他超出了预算,原因是人员费用要高于原先的计划.另外项 ...

  6. oracle 处理表的一列

    ---删除一列和数据一起删除了. ALTER TABLE 表名 DROP COLUMN 列名; ---添加一列 alert table 表名 add column 列名; ---只删除一列的数据 没有 ...

  7. Leetcode682.Baseball Game棒球比赛

    你现在是棒球比赛记录员. 给定一个字符串列表,每个字符串可以是以下四种类型之一: 1.整数(一轮的得分):直接表示您在本轮中获得的积分数. 2. "+"(一轮的得分):表示本轮获得 ...

  8. 阿里云SaaS生态战略发布,用宜搭5分钟部署OCR文字识别

    7月26日,在阿里云合作伙伴峰会上,阿里云发布SaaS生态战略:通过SaaS加速器为合作伙伴提供应用开发.集成.上云.售卖的全链路解决方案,提升开发效率和集成效率,缩短商业化周期. 作为阿里SaaS加 ...

  9. let 和const命令

    ES6新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效.换句话说,let声明了块级作用域. 输出 看下面代码: 输出: 变量i是var声明的,在 ...

  10. CF789D Mike and distribution

    题目连接 一道人类智慧题.... 这道题目可以转化为在a,b中的选出一些位置,使得这些位置处的值加起来大于没有选的位置的值 我们按照a的权值排序,选择第一个元素,其与元素两两分组,每组选择b更大的那一 ...