博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

随笔分类 -  数学——博弈论

摘要:有多堆石子, 每次可以将任意一堆拿走任意个或者将这一堆分成非空的两堆, 拿走最后一颗石子的人胜利。问谁会获得胜利。 阅读全文
posted @ 2018-02-25 21:04 SovietPower 阅读(230) 评论(1) 推荐(0)
摘要:有一个一行n列的棋盘,每个人每次往上放一个棋子,将三个棋子连在一起的人赢。问是否有必胜策略。 阅读全文
posted @ 2018-02-25 20:29 SovietPower 阅读(206) 评论(0) 推荐(0)
摘要:"题目链接" Anti Nim游戏: 先手必胜当且仅当: 1.所有堆的石子数为1,且异或和为0 2.至少有一堆石子数 1,且异或和不为0 简要证明: 对于1:若异或和为1,则有奇数堆;异或和为0,则有偶数堆。比较显然。 对于2:(1)对于只有一堆石子数 1的情况(异或和一定不为0),先手可以操作这堆 阅读全文
posted @ 2018-02-25 08:59 SovietPower 阅读(152) 评论(0) 推荐(0)
摘要:给定一个集合S,每次只能拿S中某个元素个数的石子。每组数据有多组询问,询问给出m堆石子个数,问先手是否必胜。有多组数据。 阅读全文
posted @ 2018-02-25 08:29 SovietPower 阅读(163) 评论(0) 推荐(0)
摘要:"题目链接" cpp //求三堆石子的SG函数,异或起来就是整个游戏的SG值 include include const int N=1005; int n,m,p,cnt,F[N],sg[N+2]; bool vis[N+2]; void Init() { F[0]=F[1]=1; for(cnt 阅读全文
posted @ 2018-02-25 07:40 SovietPower 阅读(148) 评论(0) 推荐(0)
摘要:一个1~INF的坐标轴上有n个棋子,给定坐标Pi。棋子只能向左走,不能跨越棋子,且不能越界(<1)。两人每次可以将任意一个可移动的棋子向左移动一个单位。问先/后手会赢或是否无解。 阅读全文
posted @ 2018-02-24 21:35 SovietPower 阅读(259) 评论(0) 推荐(0)
摘要:"题目链接" 后手必胜(先手必败,P position)当且仅当n堆石子数异或和为0。 首先0一定是P position, 假设a1^a2^a3^...^an=K 若K!=0,则一定可以找到一个ai,ai在K的最高位的1上为1,显然ai ai^K,那么可以把ai变成ai^K,局面就成了a1^a2^. 阅读全文
posted @ 2018-02-24 20:48 SovietPower 阅读(168) 评论(2) 推荐(0)
摘要:Tang,Jiang两人轮流写数,若A在写了X,则B只能写Y,满足1<=Y-X<=k。最先写数的T只能写[1,k]内的数。第一个写的数>=N的lose,问最后的winner。 阅读全文
posted @ 2018-02-24 19:32 SovietPower 阅读(220) 评论(0) 推荐(0)