• 每天一道博弈论之"pb的游戏(1)"(口胡)


       https://www.luogu.org/problemnew/show/P3150

      题目大意:

        两个人在玩游戏,一开始有一个数x,先手方把他拆分成两个数a和b,使得(a+b==x,a>0,b>0),然后后手方选择其中一个数按之前规则拆分,另一个数就被丢掉,然后先手方再从两个数中选择一个... ...

        若其中一人无法操作,则输。

      题解:

        我们考虑末状态(1,1),两个奇数。

        假如我们面对的两个数中有一个偶数(或者一开始面对一个偶数),那么我们一定可以把这个偶数分解成两个奇数,而奇数只能分解成一个奇数和一个偶数,所以下次你面临的状态还是有一个偶数。

        反复下去可以发现你面临的状态都有偶数,而对面面临的状态都是两个奇数,数字一直在减小(也就是说游戏不是无限的),那么只可能对手面临终态(必败态),你就赢了。

        反过来,如果你先手面临奇数,那必然要给对方留下偶数,你就输了。

        综上,x为偶数时先手必胜,否则必败。

      代码就判断个奇偶,没有放的必要了==

        

  • 相关阅读:
    外星人(alien)
    6. 第 6 章 函数
    5. 第 5 章 循环
    4. 第 4 章 条件选择
    3. 第 3 章 表达式和交互
    2. 第 2 章 C++简介
    1. 第 1 章 计算机和编程简介
    24. 蛇形填数
    23. 开灯问题
    12. aabb
  • 原文地址:https://www.cnblogs.com/zub23333/p/8495320.html
Copyright © 2020-2023  润新知