sg,是用来判断博弈问题的输赢的,当sg值为0的时候,就是输,不为0就是赢;

在这之前,我们规定一个对于集合的操作mex,表示最小的不属于该集合的非负整数。 举几个栗子:mex{0,1,2}=3,mex{1,2,3}=0,mex{0,1,3}=2;

而我们要求的sg的值就和这个有关,定义SG函数:SG(x)=mex{ SG(y) | y是x的后继,也就是经过操作可以取得的剩下值 }。

举个栗子:比如一堆石子,我们可以取任意个,那么x个石子的石子的sg值是多少呢?

可以知道,0个石子sg为0,一的时候我们可以取一个,剩下0,的sg是0,那么mex(0)就是1,所以1的sg为1。

递推下去当为x的时候我们可以取1~x个,那么剩下的值石子个数就是x-1到0个,他的mex(...)就是x,所以这个例子的x值得sg值就是x;

那么,sg可以为我们做什么呢?比如Nimm问题,多堆的时候,我们只需要将每个sg值亦或一下,如果是0就会输,不是就赢,也就是将每堆的数量亦或就可以了

sg函数的理解的更多相关文章

  1. (转载)-关于sg函数的理解

    最近学习了nim博弈,但是始终无法理解sg函数为什么sg[S]=mex(sg[S'] | S->S'),看到一篇博文解释的不错,截取了需要的几章节. 四.Sprague-Grundy数的提出 我 ...

  2. sg函数入门理解

    首先理解sg函数必须先理解mex函数 mex是求除它集合内的最小大于等于0的整数,例:mex{1,2}=0:mex{2}=0:mex{0,1,2}=3:mex{0,5}=1. 而sg函数是啥呢? 对于 ...

  3. SG函数的理解集应用

    转载自知乎牛客竞赛——博弈论入门(函数讲解+真题模板) SG函数 作用 对于一个状态i为先手必胜态当且仅当SG(i)!=0. 转移 那怎么得到SG函数尼. SG(i)=mex(SG(j))(状态i可以 ...

  4. Light OJ 1199 - Partitioning Game (博弈sg函数)

    D - Partitioning Game Time Limit:4000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu ...

  5. 博弈论进阶之SG函数

    SG函数 个人理解:SG函数是人们在研究博弈论的道路上迈出的重要一步,它把许多杂乱无章的博弈游戏通过某种规则结合在了一起,使得一类普遍的博弈问题得到了解决. 从SG函数开始,我们不再是单纯的同过找规律 ...

  6. HDU1536&&POJ2960 S-Nim(SG函数博弈)

    S-Nim Time Limit: 2000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u Submit Status ...

  7. 关于sg函数的一些证明

    复习csp2019的时候稍微看了看博弈论,发现自己对于sg函数的理解完全不到位 有些定义甚至想都没想过 于是就口胡了一篇blog来安慰虚弱的自己 Question 1 对于一个满足拓扑性质的公平组合游 ...

  8. 博弈的SG函数理解及模板

    首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数.例如mex{0,1,2,4}=3.mex{2,3,5}=0.mex{}=0. 对 ...

  9. hdu 4559 涂色游戏(对SG函数的深入理解,推导打SG表)

    提议分析: 1 <= N <= 4747 很明显应该不会有规律的,打表发现真没有 按题意应该分成两种情况考虑,然后求其异或(SG函数性质) (1)找出单独的一个(一列中只有一个) (2)找 ...

随机推荐

  1. 【Spark】为什么没有任务调度到新增的Worker之上???

    参考资料: https://stackoverflow.com/questions/34818880/spark-why-tasks-assigned-only-to-one-worker?utm_m ...

  2. 添加script标签、添加事件

    添加script标签 var _hmt = _hmt || [];    (function () {        var hm = document.createElement("scr ...

  3. MDX Cookbook 03 - MDX 查询中负数,零和空值 NULL 的格式化处理

    FORMAT_STRING 属性在处理计算成员(通常是度量值成员)的时候会经常使用到,比如指定标准 Standard, 货币 Currency 或者 Percent 百分比格式.除此之外,还可以自定义 ...

  4. Ubuntu界面重新安装图形界面

    前两天装了ubuntu12升级到16,升级完成后发现界面用的时候怪怪大的,感觉界面有问题:就从新安装了一下,还挺好用,shell脚本如下: #/bin/bash sudo apt-get update ...

  5. javascript中的数据结构

    Javascript中的关键字   abstract     continue      finally      instanceof      private       this boolean ...

  6. Swift Precondition 预处理

    前言 precondition 和 assert 的格式类似,也是动态的,precondition 会造成程序的提前终止并抛出错误信息. 1.Precondition precondition 在一般 ...

  7. 6.翻译系列:EF 6 Code-First中数据库初始化策略(EF 6 Code-First系列)

    原文链接:http://www.entityframeworktutorial.net/code-first/database-initialization-strategy-in-code-firs ...

  8. hibernate之关于一对多单向关联映射

    [hibernate]之关于一对多单向关联映射 基于外键的一对多关联映射! 一对多,Group(组)对于Person(人),一个组能够有多个人!ok? Hibernate主要有两种配置方法.一种是An ...

  9. Source Insight 4.0常用设置

    本文以Source Insight 4.00.0086版本为例讲解常用设置. 1.Source Insight简介 Source Insight是一个面向软件开发的代码编辑器和浏览器,它拥有内置的对C ...

  10. 【Java】浅谈Java IO

    注意 本文的代码,为了学习方便,简化代码复杂度,未考虑拆包.粘包等情况的处理.所以仅供学习使用,不能用于实际环境. 阻塞IO,BIO Java1.1发布的IO是BIO.阻塞地连接之后,通过流进行同步阻 ...