题意:有两堆石子,两人轮流取,每次可以取一堆中的任意个,或两堆中取相同多个。谁先取光所有堆谁赢。问先手能否获胜。分析:威佐夫博弈,如果是奇异态则先手输,否则先手赢。直接套用公式判断是否为奇异态,设第一堆有a个,第二堆有b个,二者的差为c个。奇异态近似符合公式b/a=a/c。即近似符合黄金分割。严格符...
转载
2013-07-04 16:00:00
39阅读
2评论
取石子游戏
Description
有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。
Input
输入包含若干行,表示若干种石子
原创
2013-04-22 21:25:59
272阅读
POJ1067取石子游戏:威佐夫博奕(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。
这种情况下是颇为复杂的。我们用(ak,bk)(ak ≤ bk ,k=0,1,2,……,n)表示两堆物品的数量并称其为局势,如果甲面对(0,0),那么甲已经输
原创
2012-04-11 09:23:32
419阅读
首先有SG(x,y)=mex(SG(x-a,y-a),SG(x-a,y),SG(x,y-a)),其中SG(0,0)=0,打表发现(1,2)(3,5)(4,7)(6,10)(8,13)……时SG为0(即必败),假设第一项是ai,第二项是bi,很容易发现:1.bi=ai+i,2.ai=mex(bi,bj
转载
2019-07-28 10:28:00
52阅读
2评论
http://poj.org/problem?id=1067Description有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部...
转载
2018-07-22 15:11:00
86阅读
2评论
取石子游戏Time Limit: 1000MS Memory Limit: 10
原创
2023-02-17 16:53:16
48阅读
问题链接:POJ1067 HDU1527 取石子游戏。问题描述:参见上文。问题分析:这是一个博弈题,参见参考链接。程序说明:(略)参考链接:HDU1527:取石子游戏(威佐夫博弈)威佐夫博弈_百度百科AC的C++语言程序:/* POJ1067 HDU1527 取石子游...
转载
2017-05-14 08:05:00
42阅读
2评论
题意:有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。 游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。 最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是
转载
2018-11-15 22:11:00
43阅读
2评论
clude<cstring>#include<queue>#include<stack>#include<algorithm>#include<cmath>#includ
原创
2022-12-06 19:22:18
91阅读
【题目】 Description 有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的
转载
2016-04-21 17:06:00
101阅读
2评论
威左夫博弈。使用黄金分割公式。k=[k(1+√5)/2],bk=ak+k(k=0,1,2,…,n方括号表示取整函数)奇妙的是其中出现了黄金分割数(1+√5)/2=1。618…,因此,由ak,bk组成的矩形近似为黄金矩形,由于2/(1+√5)=(√5-1)/2,可以先求出j=[a(√5-1)/2],若...
转载
2015-04-06 20:21:00
26阅读
2评论
codeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--1#include<iostream>2#include<cmath>34usingnamespacestd;56intmain()7{8doublealpha=(1.0+...
转载
2010-08-15 13:04:00
50阅读
2评论
两堆石子,每次可以从一堆取走任意个,或者两堆同时取走任意个,求先手胜负。标
原创
2023-07-17 18:05:07
37阅读
取石子游戏Description有 两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆 中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好...
原创
2021-07-16 15:03:26
53阅读
博弈论 这个是博弈游戏中的Wythoff博弈:以下为我的代码: 1 //POJ 1067 2 #include 3 #include 4 #include 5 int main(){ 6 freopen("1067.in","r",stdin); 7 int a,b; 8 ...
原创
2021-08-04 14:59:16
202阅读
Description 有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最
转载
2018-07-19 10:56:00
72阅读
题解 这道题让我对SG函数有了更深刻的理解,这是道打表找规律题 我们打出来SG函数似乎是 1 2必败 3 5必败 4 7必败 6 10必败 8 13必败 哇我找到规律了…… 然而,我显然不会通项 后来百度题解这个东西是威佐夫博弈,前面东西的通项是 $\lfloor \frac{\sqrt{5} +
转载
2018-05-15 15:16:00
46阅读
2评论
取石子游戏Description有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设...
转载
2016-05-26 20:52:00
75阅读
2评论
【POJ-1067 取石子游戏】
题意: 给定两堆石子, 有两种取法:
1. 在其中任意一堆中去任意多石子
2. 在两堆中取相同多石子
最少取一个石子, 不能取为败。
分析:这道题是一个标准的威佐夫博弈, 对于为一个状态(a, b)如果他满足 (a, b)组成的矩形为黄金矩形那么先手的人就必输。
组成黄金矩形,那么他的长宽比应该为(b为长, a为宽)
(a / (b - a)) = (1 + sq...
原创
2021-08-31 14:03:59
85阅读
有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 这种情况下是颇为复杂的。我们用(ak,bk)(ak ≤ bk ,k=0,1,2,…,n)表示两堆物品的数量并称其为局势,如果甲面对(0,0),那么甲已经输了,这种局势我们称为奇异局势。
转载
2019-09-11 23:03:00
157阅读