
博弈论
BEconfidence
坚持才是胜利之道
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU 3951 Coin Game (博弈)
又是一道博大精深的博弈题目。已经说了 巴什博弈,威佐夫博弈,尼姆博弈,SG函数,找规律的博弈,这次和找规律有点类似——对称博弈。一般都是圆啊方啊什么的。对于这道题而言,可以有三种情况:①k等于1 一次最多只能拿1个(每堆只有一个),那就是看奇偶了。②n≤k 这种情况,那肯定先拿的赢。③ 这条就是对称博弈了, 除了上述两种情况外的情原创 2015-05-06 20:42:02 · 705 阅读 · 0 评论 -
hdu1079 Calendar Game(博弈)
典型的博弈论,算法思路为在初始化的过程中便获得2001.11.4到1990.1.1期间所有日期的胜败情况。对于y-m-d日期,若其下一天和下一月中有一个为必败情况,则今天为必胜。若两者均为必胜,则今天为必败。主要难度在于前一日(getDayBefore)和后一月(isValidNextMonth)日期的判定,要注意闰年情况的特殊性。 虽然说这样可行。但是,网上给出了另外一种巧解,如下。从后往前原创 2015-06-03 13:34:11 · 834 阅读 · 0 评论 -
poj 2505 A multiplication game(博弈)
还的确是一个稍有难度博弈的问题(这个可不属于博弈中的任何一个):题意:游戏规则为:两个人在2-9选数选出之后与p相乘,此时p=p*(2...9);当p>=n时这一方获胜。。分析:如果输入是 2 ~ 9 ,(2~9)因为Stan 是先手,所以Stan 必胜如果输入是 10~18 ,(9+1~9*2)因为Ollie 是后手,不管第一次Stan 乘的是什么原创 2015-06-03 21:34:43 · 614 阅读 · 0 评论 -
HUD2188 悼念512汶川大地震遇难同胞——选拔志愿者(巴什博奕)
#includeint main(){ int C,n,m; scanf("%d",&C); while(C--){ scanf("%d%d",&n,&m); if(n%(m+1)==0) printf("Rabbit\n"); else printf("Grass\n"); } return 0;}原创 2015-06-02 20:42:24 · 683 阅读 · 0 评论 -
HDU2149 Public Sale(巴什博奕)
才直到这种问题叫巴什博奕换是老问题多了一个第一次报价的输出取值我分了两种情况1.N》=M时 ,应该是输出M,M+1,...N2.N(s来源于公式M%(N+1) == s)#includeint main(){ int M,N; while(scanf("%d%d",&M,&N)!=EOF){ if(M%(N+1)==0) printf原创 2015-06-02 20:27:32 · 726 阅读 · 0 评论 -
HDU1850 Being a Good Boy in Spring Festival
解题报告:题目的意思很简单!就是一个Nim博弈!但是不是问谁获胜,本题而是问的获胜的方法有多少种!首先,我们必须知道,因为是起手,对于M堆扑克,最多有M种获胜的方法!对res = M1 ^ M2 ^ M3 …. ^ Mm取异或(^)得res,由异或的性质知:res ^ Mi = ( M1 ^ M2 …^M(i-1) ^ M(i+1) ^ … ^Mm ) ,也就是说res对任意一个数取^可以原创 2015-06-02 22:19:00 · 651 阅读 · 0 评论 -
HDU1849 Rabbit and Grass()
用异或看取得的值是否为0判断思想换没搞懂#includeint main(){ int ans,n,a; while(scanf("%d",&n),n){ ans=0; while(n--){ scanf("%d",&a); ans=ans^a; } if(a原创 2015-06-02 22:11:03 · 782 阅读 · 0 评论 -
hdu1848 Fibonacci again and again(SG函数博弈)
现在换是看不明白SG函数的求法什么的暂时先当模板题吧函数mex1就是求g(x)然后异或#include#include#include#includeusing namespace std;int k,fibo[100],f[10001];int mex1(int p){ int i,t; bool g[101]={0}; for(i=0;i<k原创 2015-06-02 22:00:58 · 778 阅读 · 0 评论 -
hdu2147 kiki's game(博弈)
这个是纳什博弈?不知道怎么看的根据PN图,从左下角开始推左下角P最后一行都是PNPNPN第一列都是PNPNP完了填完就行了#includeint main(){ int n,m; while(scanf("%d%d",&n,&m)&&n&&m){ if(n&1&&m&1) printf("What a pity!\n"原创 2015-06-02 21:28:54 · 570 阅读 · 0 评论 -
SG模板
首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数。例如mex{0,1,2,4}=3、mex{2,3,5}=0、mex{}=0。对于一个给定的有向无环图,定义关于图的每个顶点的Sprague-Grundy函数g如下:g(x)=mex{ g(y) | y是x的后继 },这里的g(x)即sg[x]例如:取石子问题,有1原创 2015-05-31 22:42:19 · 532 阅读 · 0 评论 -
hdu1847 Good Luck in CET-4 Everybody!(博弈论)
仔细想这个和前面那个一样让对方面对一个数值(包括倍数)时,对面就是输了因为:对面拿一个数,但是拿不了这个数值 我拿完后补全这个数值对面那sb还是面对这个值这个题的数值是3#includeint main(){ int n; while(~scanf("%d",&n)){ if(n%3) printf("Kiki\n原创 2015-05-31 22:10:09 · 601 阅读 · 0 评论 -
hdu1856 Brave Game(博弈论)
应该是最基础的那种博弈论的题(m+1)+多余 == n如果没有多余,那么就后手赢了#includeint main(){ int n; scanf("%d",&n); while(n--){ int x,p; scanf("%d%d",&x,&p); if(x%(p+1)==0 ) printf("secon原创 2015-05-31 21:47:25 · 591 阅读 · 0 评论 -
zoj博弈月赛
Help BobTime Limit: 2 Seconds Memory Limit: 65536 KBThere is a game very popular in ZJU at present, Bob didn't meant to participate in it. But he decided to join it after discovering a lo原创 2015-07-26 13:53:25 · 802 阅读 · 0 评论