SG函数
ZigZagK
一个蒟蒻。
展开
-
SG函数
SG函数 模型 一张有向图和若干个棋子,两个选手轮流操作,每次可以将任意一个棋子沿着有向边移动(不可以不移动),无法移动者输,问先手是否必胜。 解决 定义 mex{s} 表示 s 集合中没有出现的最小的非负整数,比如 mex{0,1,2}=3,mex ϕ=0 。 然后定义每个节点的SG函数为 SG(x)=mex{SG(y)|(x,y)∈E} 也就是后继节点中没有出现的最小的非负整数。这么定义显然有几个结论:原创 2017-10-18 14:45:21 · 349 阅读 · 0 评论 -
【SG函数】HDU1847[Good Luck in CET-4 Everybody!]题解
题目概述有 nn 张牌,每次可以拿走 2i2^i 张牌,拿走最后一张牌的人获胜,求先手是否必胜。解题报告先求出 [1,maxn][1,maxn] 的SG函数,然后判断SG(n)是不是 00 就可以了。这个数据范围是给 O(n2)O(n^2) 的吧……实际上 O(nlog2n)O(nlog_2n) 就行了。示例程序#include<cstdio> using namespace std; const原创 2017-11-23 20:20:19 · 235 阅读 · 0 评论 -
【SG函数】BZOJ1188(HNOI2007)[分裂游戏]题解
题目概述游戏规则:共有 nn 个瓶子,第 ii 个瓶子中装有 pip_i 颗巧克力豆,两个人轮流取豆子,每一轮每人选择瓶子 i,j,k,i<j≤ki,j,k,i<j\le k 且第 ii 个瓶子中至少要有 11 颗巧克力豆,随后这个人从第 ii 个瓶子中拿走一颗豆子并在 j,kj,k 中各放入一粒豆子。如果轮到某人而他无法按规则取豆子,那么他将输掉比赛。问先手第一次操作后使对手必败的方案数。解题报告原创 2017-11-25 09:35:14 · 335 阅读 · 0 评论 -
【巴什博弈】HDU2147[kiki's game]题解
题目概述一个棋盘,刚开始在 (1,m)(1,m) ,每次可以往左或下或左下走一步,问先手是否必胜。解题报告直接求 SGSG 函数就行了。但是如果把 SGSG 函数打表出来,会发现只要 nn 是偶数或者 mm 是偶数就能必胜,这好像就是巴什博弈???示例程序#include<cstdio> using namespace std; const int maxn=2000;int n,m;bool f[原创 2017-11-26 21:22:25 · 350 阅读 · 0 评论