博弈
knownothing
这个作者很懒,什么都没留下…
展开
-
uva 1378 A Funny Stone Game 博弈/组合游戏 sg定理
#include #include #include #include #include #include using namespace std;#define maxn 30#define maxv 100 //一开始把vis的范围开的跟sg的一样大。。。忘了sg函数值可能很大的int sg[maxn],vis[maxv],a[maxn];void init(){原创 2013-08-18 11:06:35 · 5180 阅读 · 0 评论 -
hdu 3032 Nim or not Nim? 博弈(SG定理+找规律)
题意:给定n堆石子,两人轮流操作,每次选一堆石子,取任意石子或则将石子分成两个更小的堆(非0),取得最后一个石子的为胜。题解:比较裸的SG定理,用sg定理打表,得到表1,2,4,3,5,6,8,7,9,10,12,11...可以发现当x%4==0时sg[x]=x-1;当x%4==3时sg[x]=x+1;其余sg[x]=x。然后异或下就出来结果了。主要还是用学会SG定理。详细的可以百度,或则看我原创 2013-10-26 15:57:14 · 1150 阅读 · 0 评论 -
hdu 2897 邂逅明下 博弈
题意:中文,自己看吧,前面都是废话,只有倒数第2段有用。题解:跟以前的取石子一样,这里限制课最多q,最少p,当方法还是一样的。无论第一个人取多少硬币,第二个人必定可以取硬币使得两人取的硬币数和为p+q。则令s=n%(p+q)。如果0耗时:46MS/1000MS#include #include using namespace std;int main(){原创 2013-10-26 15:05:50 · 787 阅读 · 0 评论 -
hdu 1525 Euclid's Game 博弈
题意:有两个数a,b,每次操作将较大值减去较小值的倍数,但不能减到小于,轮流操作,当较小值为0时为胜。题解:类似求最大公约数,最后必定要使较大值比较大值小,定为子游戏,如a>b,最后a=a%b。可转化为类似取石子的游戏。例:a=25,b=7-->a=7,b=4-->a=4,b=3-->a=3,b=1-->a=1,b=0;(3,1,1,3)为每次子游戏最多可取的数,即a=25,b=7-->a=7原创 2013-10-26 13:45:59 · 886 阅读 · 0 评论 -
hdu 3537 Daizhenyang's Coin 博弈(Nim游戏+sg定理+找规律)
题意:已知一排硬币中有n个硬币正面朝上,输入正面朝上的硬币的位置ai。两人轮流操作,每次操作可以翻转1,2,或则3枚硬币,其中翻转的最右的硬币必须是正面朝上的,最后不能翻转的为负。理解题意理解了半天,还差点理解错了。。题解:我们发现这是个Nim游戏,简单化题目,就是将一个游戏分成多个子游戏。这题是分出的子游戏是,只有一个正面朝上的硬币,位置在ai,求出所有该类sg函数值sg[ai]。则答案就是原创 2013-10-26 17:23:02 · 2007 阅读 · 1 评论 -
hdu 3389 Game 阶梯博弈
#include #include #include #include #include #include #include using namespace std;#define LL __int64const int maxn=1010;int main(){ int T,tt=0; cin>>T; while(T--) {原创 2013-09-22 23:14:40 · 1287 阅读 · 2 评论 -
poj 1704 Georgia and Bob 博弈
#include #include #include #include #include #include #include using namespace std;#define LL __int64const int maxn=1010;int a[maxn];int main(){ int T; cin>>T; while(T--) {原创 2013-09-21 22:52:45 · 795 阅读 · 0 评论 -
hdu 1849 Rabbit and Grass SG定理(简单博弈)
#include #include #include #include #include #include #include #include using namespace std;const int maxn=1010;int a;int main(){ int n; while(cin>>n) { if(n==0)break;原创 2013-09-17 23:08:45 · 909 阅读 · 0 评论 -
hdu 1851 A Simple Game SG定理
#include #include #include #include #include #include #include #include using namespace std;const int maxn=22;int sg[maxn][maxn],vis[maxn];void init(){ int i,j,k; for(k=1;k<=20;k++原创 2013-09-17 23:40:37 · 727 阅读 · 0 评论 -
hdu 1847 Good Luck in CET-4 Everybody! SG定理
#include #include #include #include #include #include #include #include using namespace std;const int maxn=1010;int sg[maxn],vis[maxn];int c[20];void init(){ int i,j; c[0]=1;原创 2013-09-17 23:20:39 · 973 阅读 · 0 评论 -
hdu 1850 Being a Good Boy in Spring Festival SG定理(简单博弈)
#include #include #include #include #include #include #include #include using namespace std;const int maxn=110;int a[maxn];int main(){ int n; while(cin>>n) { if(n==0)br原创 2013-09-17 22:36:25 · 700 阅读 · 0 评论 -
hdu 2147 kiki's game 简单博弈
#include #include #include #include #include #include #include #include using namespace std;int main(){ int n,m; while(cin>>n>>m) { if(n==0&&m==0)break; if(n%2&&m原创 2013-09-17 22:13:09 · 919 阅读 · 0 评论 -
hdu 2188 悼念512汶川大地震遇难同胞——选拔志愿者 简单博弈
#include #include #include #include #include #include #include #include using namespace std;int main(){ int n,m,T; cin>>T; while(T--) { cin>>n>>m; if(n%(m+1)=原创 2013-09-17 21:46:31 · 1300 阅读 · 0 评论 -
hdu 1079 Calendar Game 博弈(组合游戏) sg函数
代码:原创 2014-07-30 13:25:48 · 806 阅读 · 0 评论