zoukankan      html  css  js  c++  java
  • Every-SG 博弈论 mark定义和结论

    http://blog.sina.com.cn/s/blog_51cea4040100h3l9.html

    这种类型,可以想成这样,有N组游戏,有N个穿红色衣服的人代表先手,有N个穿蓝色衣服的人代表后手,这个时候,编号相同的人和游戏分到一组游戏,既第i号穿红色衣服人和第i号穿蓝色衣服的人做第i个游戏。游戏开始后,首先所有穿红衣服的人先操作,然后所有穿蓝色衣服的人再操作,这样轮流下去。直到最后还没游戏完的一组,这组如果是红色衣服的人胜利,那么该游戏先手必胜,如果是蓝色衣服的人胜利,就是先手必败。

    很明显,Every-SG不仅仅像其他SG那样仅仅跟SG值有关,还与一个游戏的时间长度有关。

    如果先手想赢,那么,在做先手必胜的单一游戏时,他肯定是想把战线尽量拉长。在做先手必败的单一游戏时,他肯定是想把游戏尽快结束。

     于是我们开一个Step数组。

    表示对于先手必胜的单一游戏而言,它最少走好多步胜利。对于先手必败的单一游戏而言,它最多走好多步。

    这样,我们只需要看最后所有单一游戏最大的step那组的SG是0还是非0就可以断定是否先手必胜了。

        很容易得出:

        (u是v的子状态)

        step[v] = 0;                 (v为终止状态)

        step[v] = max{step[u]} + 1;  (sg[v]>0,sg[u]=0)

        step[v] = min{step[u]} + 1;  (sg[v]==0)

  • 相关阅读:
    [BZOJ4034][HAOI2015]树上操作
    [BZOJ1030][JSOI2007]文本生成器
    [BZOJ2763][JLOI2011]飞行路线
    [POJ3667]Hotel
    [codevs1566]染色
    [codevs2460]树的统计
    [BZOJ2667][cqoi2012][kcoj]模拟工厂
    [NOI2009][codevs1846]KCOJ0191]植物大战僵尸
    [POJ1087]A Plug for UNIX
    Educational Round 66 题解
  • 原文地址:https://www.cnblogs.com/137shoebills/p/8328295.html
Copyright © 2011-2022 走看看