Game Theory
文章平均质量分 63
Masamiiiii
这个作者很懒,什么都没留下…
展开
-
2016百度之星 热身1004
http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=695&pid=1004#include #include int main() //正多边形为偶数 所以 如果先手能在中间放 则不管后手在哪里放 先手都能放在其关于中心点(第一个圆的圆心)对称的位置 { int t,i; double n,a原创 2016-05-13 19:49:07 · 400 阅读 · 0 评论 -
HDU 4701 Game 递推+博弈
点击打开链接题意:n个物品,每个价值c[i],两人分别有A,B元,每次轮流购买>=1件物品,规则:购买第i(i>1)件时,i-1件必须被购买,不能购买算输n首先:如果Alice有x元就能必胜,则有y(y>x)元肯定也能获胜则设计状态d[i] 在买第i件物品前 必胜所需要的最小价钱sum[i] 为前i件物品之和 ,若第i件先手时有d[i]元,则对手的钱为y:A+B=y+d[i]+原创 2017-05-18 20:36:03 · 373 阅读 · 0 评论 -
Codeforces 768E Game of Stones 博弈SG(打表)
点击打开链接题意:n堆stone,每堆s[i]个 s[i]找到i个石头的SG值,同样i个,取的石头可能有不同的限制.设dp[i][j] i表示石子数量 j表示能取的状态的SG值 O(n*2^n*logn) 最终游戏要求的异或和为:dp[i][2^i-1](i=1~n) 打表找到dp[i](2^i-1)规律即可#include using namespace std;t原创 2017-05-08 11:45:15 · 437 阅读 · 0 评论 -
Codeforces 151C Win or Freeze 简单博弈+唯一分解
点击打开链接题意:给出一个数字n,n一个状态为1或者素数则为必胜,一个结点n的后继为:n的因子 若后继(因子)都为必胜态(素数)则必败首先n用唯一分解表示为n=p1^a1 *p2^a2*...pn^an,若存在一个因子不为素数,则i>=2或者i==1&&ai>=2若i==1&&ai>=2 则取n的一个因子 p1^2 则为必胜态若i>=2 则取p1*p2 则也为必胜态即存原创 2017-03-26 18:03:28 · 455 阅读 · 0 评论 -
POJ 2311 Cutting Game SG函数
点击打开链接复习下SG函数对于一个给定的有向无环图,定义关于图的每个顶点的Sprague-Garundy函数g如下:g(x)=mex{ g(y) | y是x的后继 }。来看一下SG函数的性质。首先,所有的terminal position所对应的顶点,也就是没有出边的顶点,其SG值为0,因为它的后继集合是空集。然后对于一个g(x)=0的顶点x,它的所有后继y都满足g(y)!=0原创 2017-03-06 15:28:02 · 314 阅读 · 0 评论 -
hdu 3032 Nim or not Nim SG函数入门+打表找规律
点击打开链接//题意:n堆石子 每堆a[i] 操作为:拆分成两堆或者取若干个 //sg[a[i]]>=sg[a[i]]^k ,sg[x]=mex(sg[yi])// BOUTON'S THEOREM:n堆石子对应的(sg[a[1]]^sg[a[2]]....^sg[a[n]])=k时(k!=0) 将sg[a[i]]->sg[a[i]]^k即可使异或式为0//SG异或式为0时 由于消原创 2016-12-17 23:33:02 · 405 阅读 · 0 评论 -
hdu 5996 dingyeye loves stone nim同阶博弈
点击打开链接题意:给出n个结点的树 两个人轮流操作,操作为u-fa[u]传k个数 k小于等于a[u] 谁先不能操作则输.观察发现 a[i]是在不断向root移动,当且仅当a[root]!=0 其他a[i]=0时 游戏结束如果一个结点距离root为偶数,则对该结点操作无意义(若对手移动它们,则可模仿操作) 剩下的操作只有奇深度向偶深度移动这一步(移动这一步的数量a[i]等价于nim中原创 2016-12-17 22:45:49 · 334 阅读 · 0 评论 -
poj 2505 A multiplication game 博弈基础
点击打开链接题意:从1开始轮流操作,操作mul from 2 to 9 >=n 时无法操作,则输 一个state 后继有一个为必败态时,该state为必胜态n明显n为必败 则[n/9,n)都为必胜态 x=n/9 [x/2,x) x/2~x都为必败态 因为[x/2,x)不管mul什么都会进入必胜态的区间(该区间的任意一个数的使用后继都为必胜态)#includ原创 2016-12-23 16:16:50 · 330 阅读 · 0 评论 -
hdu 1847 SG递推入门
点击打开链接http://wenku.baidu.com/link?url=47DequTlLK6bfAMcuRauPRYbJ5ZU5P8ChR9Jgbg7ZY4dPgkaY8p1RReXAuRpsbal-sbL1QEVFl3btKX4sKce3cQQY4tbIpRNjK9ogyaQYfK/mex{}集合中没有的最小非负整数 g[x]=mex{g[yi]|yi为x的后继状态}g原创 2016-12-17 20:15:32 · 320 阅读 · 0 评论 -
poj 1082 Calendar Game 博弈递推
点击打开链接参考点击打开链接如果抽到最后一天肯定是必败的,那就用这个必败态往前面递推。状态按照日期先后排列,每个current状态取决于两个next状态。只要两个next状态中有一个为必败态,则Adam可以选择移动到该next状态,让Eve落败;否则Adam没有选择,只能移动到成功态,将胜利的果实拱手让给Eve。#include #include #include #incl原创 2016-11-23 11:06:36 · 294 阅读 · 0 评论 -
poj 1704 Georgia and Bob阶梯博弈
点击打开链接把棋子两两组成一对,其距离看作nim中石子的数量右边的棋子向左移动 距离减小 相当于在该堆中拿石子 左边的棋子向左移动 距离增加 石子增多,但是下一步可以移动其右边的棋子,使之恢复至原来的状态 #include #include #include #include #include #include #include using namespac原创 2016-11-20 11:29:05 · 406 阅读 · 0 评论 -
poj 2348 Euclid's Game 博弈(推理)
点击打开链接题意给a,b 每次操作可以使大的数(假设是b)减小a的若干倍即b-ax&&b-ax>=0 Stan先手谁先使得一个数为0谁就获胜 若a|b则 b-ka=0 Stan获胜分两种情况 b-aa若b-a若b-a>a 则b可以减去a的若干倍 设x为:b-ax若(a,b-(x-1)a)为必胜态 则(a,b)为必败态 此时因为(a,b-(x-1)a)的下原创 2016-11-19 18:46:01 · 357 阅读 · 0 评论 -
poj 2484 A Funny Game 博弈(对称)
点击打开链接#include #include #include #include #include #include #include using namespace std;typedef long long ll;const int N=1e2+20;int main(){ int n; while(cin>>n&&n) { //n个coin排成环 每次可原创 2016-11-19 17:59:31 · 348 阅读 · 0 评论 -
nyoj 23 Bash Game
http://acm.nyist.net/JudgeOnline/problem.php?pid=23#include int main(){ long m,n,r; int t; scanf("%d",&t); //题目 两人轮流抽一堆物品共n个 每次至少抽一个最多抽m个 :Winner为先抽完的人 while(t--) //当剩下m+1时 不管先手的怎么抽都是输原创 2016-05-07 12:41:08 · 290 阅读 · 0 评论 -
AGC 017D Game On Tree 博弈(Hackenbush删边)
题意:n个结点的树,Alice和Bob开始play,每次删除一条边,形成两连通分量,删除不包含1的那一个联通分量不能操作的人算输,n参考先考虑根结点只有一个分支时 SG(g)=SG(g')+1要证明:g的后继状态的SG值为0~SG(g') 以树中结点个数作为阶段 归纳法证明 一个结点和两个结点显然成立,去掉g-g'边得到SG(g)=0去掉g'中的边 子树g'后继的SG为原创 2017-07-10 09:57:04 · 991 阅读 · 0 评论