zoukankan      html  css  js  c++  java
  • 001 拿石头游戏,blast思想初步

    【摘录整理自 N.C.Jones 和 P.A.Pevzner 著《生物信息学算法导论》】

    游戏规则

    两堆石头,每堆n块。每个人每一轮允许从一堆石头中拿走一块或从两堆石头中各拿走一块,拿走不许放回;谁拿走最后一块,谁赢。

    2+2 战术 【每堆2两块石头】

    如果对方从每一堆拿走一块石头,我方拿走剩下石头并win;
    如果对方拿走一块石头,我方从同一堆拿走一块,只剩一堆石头,对方只能先拿一块,我方再拿,win。

    3+3 战术

    符号含义

     ↑  表示从A中拿走一块石头

     ↖ 表示从两堆各拿走一块石头

     *  谁这步是先手谁不用再玩,因为不会赢

     ←  表示从B中拿走一块石头

    位置(i,j), A堆和B堆分别有 i块 和 j块 石头。

    若游戏是3+3(A堆和B堆分别有3个石头)

    1)第三行第三列是↖,从两堆中各拿一个石头(A 2 B 2)

    2)第二行第二列,符号为*,对手怎么拿,我方都会赢

    3)对手那里B堆拿一块石头(A2 B1)

    4)参考(2,1),←,我方从B堆拿一块石头 (A 2),我方赢

    3‘)对手从A堆拿一块石头(A1 B2)

    4’)参考(1,2),↑,我方从A堆拿一块石头 (B 2),我方赢

    10 + 10 战术

  • 相关阅读:
    十一.状态设计模式
    十. 享元设计模式
    Orcale(一)概念
    java类加载器
    spring中的事务管理机制
    spring中的annotation注解类配置
    countDownLatch和Semaphore用于多线程
    布隆过滤器
    mybatis-genator自动生成的mapper中模糊查询使用方法
    java中的异常
  • 原文地址:https://www.cnblogs.com/artesian0526/p/9288037.html
Copyright © 2011-2022 走看看