Powered by:NEFU AB-IN

Link

文章目录

  • 4005. 取石子游戏
    • 题意
    • 思路
    • 代码

4005. 取石子游戏

  • 题意

    Alice 和 Bob 正在玩一个取石子游戏。
    共有 n个石子,双方轮流采取行动。
    每当轮到一人行动时,该名玩家需要从石子堆中取走恰好 1或 2或 k个石子。
    如果轮到一人行动时,已经没有石子可取,则该名玩家失败。
    已知,双方都会采取最优策略,且 Alice 率先行动。
    请问,最终谁将获胜。

  • 思路

    具体思路可以参考这篇博客 link
    ps: 这篇博客的循环节找的不能说错,但最好是从0开始,如 0 , 1 , 2 , 3 0,1,2,3 0,1,2,3

    遇到这种单堆石子博弈论问题,可以通过sg函数打表的方式找规律求解
    比如这个题,就可以枚举k的取值,然后将sg值打表打出来找规律

  • 代码

    打表代码

    '''
    Author: NEFU AB-IN
    Date: 2023-03-25 18:49:28
    FilePath: \Acwing\4005\4005.py
    LastEditTime: 2023-03-25 18:54:33
    '''
    read = lambda: map(int, input().split())
    from collections import Counter, deque
    from heapq import heappop, heappush
    from itertools import permutationsN = int(1e3 + 10)
    INF = int(2e9)
    f = [-1] * N
    # 打表代码def sg(x):if f[x] != -1:return f[x]d = Counter()for i in lst:if x >= i:d[sg(x - i)] = 1for i in range(INF):if d[i] == 0:f[x] = ireturn f[x]k = int(input())lst = [1, 2, k]for i in range(0, 20):print(i, sg(i))
    

    正式代码

    '''
    Author: NEFU AB-IN
    Date: 2023-03-25 18:57:14
    FilePath: \Acwing\4005\4005.1.py
    LastEditTime: 2023-03-25 19:00:55
    '''
    read = lambda: map(int, input().split())
    from collections import Counter, deque
    from heapq import heappop, heappush
    from itertools import permutationsN = int(1e3 + 10)
    INF = int(2e9)
    # 正式代码for _ in range(int(input())):n, k = read()if k % 3:if n % 3:print("Alice")else:print("Bob")else:ys = n % (k + 1)if ys % 3 == 0 and ys != k:print("Bob")else:print("Alice")
    

4005. 取石子游戏相关推荐

  1. BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏(SG函数)

    Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 871  Solved: 365 [Submit][Status][Discuss] Descripti ...

  2. bzoj1874: [BeiJing2009 WinterCamp]取石子游戏

    1874: [BeiJing2009 WinterCamp]取石子游戏 Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 834  Solved: 350 ...

  3. 威佐夫博弈:百练OJ:1067:取石子游戏

    威佐夫博弈(Wythoff's game):有两堆各若干个物品,两个人轮流从任一堆取至少一个或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜. 百练OJ:1067:取石子游戏 ...

  4. POJ 1067 取石子游戏

    取石子游戏 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 40917   Accepted: 13826 Descripti ...

  5. POJ-1067取石子游戏,威佐夫博弈范例题/NYOJ-161,主要在于这个黄金公式~~

    取石子游戏 Time Limit: 1000MS   Memory Limit: 10000K              Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取 ...

  6. “美登杯”上海市高校大学生程序设计邀请赛 **D. 小花梨的取石子游戏**

    "美登杯"上海市高校大学生程序设计邀请赛 (华东理工大学) D. 小花梨的取石子游戏 Description 小花梨有?堆石子,第?堆石子数量为??,?堆石子顺时针编号为1 − ? ...

  7. poj 1067 取石子游戏(博弈+威佐夫博奕(Wythoff Game))

    取石子游戏 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 29959   Accepted: 9818 Descriptio ...

  8. 【结论】取石子游戏(jzoj 1211)

    取石子游戏 jzoj 1211 题目大意: 有n个石子,每次可取1~k个石子(必须取),问先取者是否有必胜方法 输入样例 2 2 3 3 2 输出样例 No Yes 数据范围 20%的数据 K≤10 ...

  9. hdu 2516 取石子游戏

    取石子游戏 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

最新文章

  1. OpenCV+python:膨胀和腐蚀
  2. 将python3.1+pyqt4打包成exe
  3. idea项目依赖导入失败_解决idea导入项目后依赖报错问题
  4. VTK修炼之道46:图形基本操作进阶_三角网格体积、表面积、测地距离、包围盒
  5. [codevs 1034] 家园
  6. Bigraph Extension
  7. jQuery动画与事件概念以及语法
  8. C语言将字符串s连接到t的后面,下列给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到字符串t..._考试资料网...
  9. java的if else if_java,if else和if else if else区别?
  10. ResNet训练单通道图像分类网络(Pytorch)
  11. 【IJCAI 2022】参数高效的大模型稀疏训练方法,大幅减少稀疏训练所需资源
  12. 系统安装-U盘安装Windows XP SP3纯净版简述
  13. GIT无法提交到码云。原因可能是所在提交位置不对
  14. 投资 - 指标介绍: MACD
  15. Mysql(三)Mysql索引基本原理
  16. Android 信鸽推送集成
  17. MATLAB 手把手带你制作第一个APP designer程序(电子词典)
  18. AltiumDesigner规则设置
  19. ReSharper配置及用法
  20. HTML标签的基本使用:无序列表、有序列表、定义列表

热门文章

  1. Kettle carte部署与运行
  2. java socket远空_JAVA Socket超时浅析
  3. php判断无理数,经典证明:几乎所有有理数都是无理数的无理数次方
  4. 论文引用参考文献和自动更新的方法
  5. 逍遥模拟器代理Charles与Burpsuite联动
  6. 20200414-AMD的Ryzen5-4500U的性能对比测试(宏碁SF314(Acer)传奇 14英寸 )
  7. redis命令之string类型setex命令用法详情
  8. 阿里云服务器访问windows下网页(内网穿透)
  9. 请问如何查询一个APP的Android和iOS下载量?
  10. mac 下使用ssh