zoukankan      html  css  js  c++  java
  • 2018 CERC 混合博弈

    N堆石子 先手最多拿A个 后手最多拿B个 每次都至少要拿一个 谁先取完谁赢

    如果A和B相等直接就是一个bash博弈

    如果一个石堆的石子数少于min(A,B) 则是个nim游戏

    我们先讨论只有N=1且A1>min(A,B)的情况 这种情况下无论谁先手 都是拿的多的人赢

    因为假设X=A1%B 如果拿的多的人是先手 直接拿X个就赢 如果拿的多的人是后手 则假设先手拿的是Y个

    当Y<=X时 则后手再拿X-Y个就赢了 当Y>X时 则后手拿X+B-Y就赢了

    同理可证只要有两堆Ai>min(A,B)则就是拿的多的赢 但是有个特殊情况 是只有一堆>min(A,B) 其他堆都<=min(A,B)

    这样先手有一种方法可以赢 就是把这个特殊的堆拿到<=min(A,B) 且和其他堆的异或起来为0 简单的来说 就是先手如果可以把这堆拿成一个必胜的nim游戏的话 先手可以赢

  • 相关阅读:
    #1071 : 小玩具
    #1063 : 缩地
    #1124 : 好矩阵
    hiho#1145 : 幻想乡的日常
    hiho#14
    hiho 毁灭者问题
    西南民大oj(递推)
    西南民大oj(矩阵快速幂)
    西南民大oj(两园交求面积)
    hdu2844(多重背包)
  • 原文地址:https://www.cnblogs.com/Aragaki/p/11644501.html
Copyright © 2011-2022 走看看