![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
博弈论
MatrixYg
暂无
展开
-
博弈论-Bash博弈
1.开始了博弈论的学习。首先谈一下最简单的Bash博弈。Bash博弈是这样的:两个人,n个物品,每个人每次都可以取走1-m个物品,取走最后一个物品的人胜利。问先手在什么条件下必胜。2.题目链接。首先给出一个Bash的题目,满足Bash的时候,其实先手必胜的情况很好确定。我们直接给出代码,在一起来理解一下为什莫是这样的。#include"stdafx.h"#include<iost...原创 2018-12-30 19:19:32 · 1131 阅读 · 0 评论 -
博弈论-斐波那契博弈
1.斐波那契博弈是另种类型的博弈,这种博弈要求的条件是(1):博弈者还是两个人,n个物品(2)先手在第一次不能取完所有的物品,但是至少取走一个物品。(3)以后的每一个回合,每次取走的物品至多是上一个人的两倍,至少是一个。(4)先取完的人胜利。2.同理,我们在这里还是要研究先手的必胜和必败态。在斐波那契博弈中,先手的必败态是:当物品的数量n是一个斐波那契数的时候,先手必败。至于证明,有点复杂,就...原创 2018-12-30 19:58:18 · 1183 阅读 · 0 评论 -
博弈论-Nim博弈
1.Nim博弈的起源很早,至于历史我们就不再说了,直接说它的使用场景。(1)依旧是两个人博弈,但是物品时n堆,每一堆有ai个。(2)每个人可以挑选一堆取走若干个,但是不能不取。(3)最先取完所有物品的人获胜。(4)结论:所以堆的物品的数量异或起来是0,先手必败。2.一个Nim博弈的实例:Nim博弈。乍一看这题和Nim博弈有啥关系?其实仔细分析之后它就是个Nim博弈。首先n行,其实就是有n堆的物...原创 2018-12-30 20:55:30 · 955 阅读 · 0 评论 -
博弈论-威佐夫博弈
1.威佐夫博弈的条件(1)人数为两人(2)物品为两堆,每一个人在取物品的时候要么在一堆中取若干物品,要么在两堆中取相等的物品。每次至少一个,可以取完这一堆。(3)先手必败的条件:在奇异局势下必败。2.OK,如果你不是很懂什么叫做奇异局势,那么听我解释。我们知道物品两为两堆,每一堆的数量数a,b。我们记作(a,b).假设在这个状态下,先手是必败的,那么这个状态就叫做奇异局势。比如(1,2).(3...原创 2018-12-30 21:41:41 · 593 阅读 · 1 评论 -
HDU1847-Bash博弈
1.题目链接。题目的大意和Bash博弈类似,但是有一点不同,就是取得数量不再是1-m了。而是2的k次幂。实际上是一样的,为什么呢?首先如果作为先手,我们考虑自己的必败态:那就是如果物品的数量是3的倍数的时候是必败的,假设n是三的倍数,第一次取之后即使不是3的倍数,后手可以通过一定的策略将每个回合减少的物品成为3的倍数,为什么是这样的,这是可以证明的,有兴趣的自己证明一下:思路就是对于一个2的s次方...原创 2018-12-31 14:34:53 · 281 阅读 · 0 评论 -
博弈论-SG函数和SG定理
1.SG函数和SG定理是一个十分神奇的东西,有了它,绝大部分的博弈都可以被统一到这个上面,都可以使用SG函数解决。是一种解决博弈问题的十分方便的手段。2.首先给出一些基本的定义:mex运算,这个是作用在集合上的运算,具体的含义就是:找出不属于当前集合最小的非负整数,可能你有点晕,我们看几个例子。mex{1,2,3}=0;为什么?因为自然数从0开始,不属于这个集合最小的非负整数就是0了,再例如m...原创 2018-12-31 15:30:57 · 3380 阅读 · 4 评论 -
【Adrien and Austin】2018ICPC南京站A题
1.这是一道让我们翻车的题目。题目中有一个字十分的关键,就是consecutively 。这个传统的博弈论有一些不同,就是虽然要求可以取k个,但是必须下表连续,当时没有看到这个地方导致WA了四发。。。。知道了这些就好办了,特判一下N=0与K=1,其他都是先手必胜。#include<bits/stdc++.h>using namespace std;#pragma warnin...原创 2019-03-02 12:06:07 · 347 阅读 · 0 评论 -
【HDU 4764】Stone
1.题目链接。行吧,题目都在暗示这是个取石子游戏,没错,就是简单的Bash博弈。每个人取得数量不能超过k,然后数量是n-1.先手必败的条件:(n-1)%(k+1)==0.#include<bits/stdc++.h>using namespace std;#define ll long long#pragma warning(disable:4996)int main...原创 2019-05-13 16:20:01 · 133 阅读 · 0 评论