
ACM——博弈
剑不飞
时刻思考,找准方向,坚定执行,永不服输(AC才是王道。)
展开
-
hdu2147 kiki's game(博弈)
pnpnpnpnpnnnnnnnnnpnpnpnpnpnnnnnnnnnpnpnpnpnpnnnnnnnnnpnpnp原创 2012-04-04 10:15:30 · 511 阅读 · 0 评论 -
hdu1536 S-Nim(博弈)
SG函数的应用加上^.#include#include#include#define N 10003using namespace std;int sg[N];int s[103],h[103];int main(){ int n,m,i,j; //freopen("1.txt","w",stdout); while(scanf("%d",&n)&&n) {原创 2012-04-04 14:53:17 · 744 阅读 · 0 评论 -
hdu 1847Good Luck in CET-4 Everybody!
#include#include#includeusing namespace std;int n,m,sg[1003],h[1003],s[14];void Sg(){ int i,j; for(i=0;i<1003;i++) { memset(h,0,sizeof(h)); for(j=0;j<12;j++) if(i-s[j]>=0)h[sg[原创 2012-04-04 15:54:20 · 525 阅读 · 0 评论 -
hdu 1850 Being a Good Boy in Spring Festival (博弈)
经典的博弈题啊,必须弄懂必败点条件。这里是对n堆的牌数去异或,如果值为0则表示必败。题目问我们第一布有哪几种方法胜利。即就是第一步能够给对手构建多少个必败点。由于一次只能对一堆排进行操作,假设我 操作第i堆牌(a张),抽出x张。那么其余n-1堆牌的异或值是固定为b.那么 (a - x)^ b == 0 时,对手必败。到此可能有人像我一样觉得必须历遍所有a求出那个值x满足条件。其原创 2012-04-04 09:52:51 · 604 阅读 · 0 评论 -
hdu 1846 Brave Game(博弈)
简单博弈,懂得SG函数就能A#include#include#includeusing namespace std;int main(){ int n,m,sg[1003],h[1003]; scanf("%d",&m); while(m--) { int i,j,k; scanf("%d%d",&n,&k); for(i=0;i<1002;i原创 2012-04-04 15:15:20 · 430 阅读 · 0 评论 -
hdu 1848Fibonacci again and again
没什么好说的,博弈简单题,懂得SG改下s数组大体都一样详细讲解类试题1850#include#include#includeusing namespace std;int n,m,p,sg[1003],h[1003],s[20];void Sg(){ int i,j; for(i=0;i<1003;i++) { memset(h,0,sizeof(h));原创 2012-04-04 16:21:10 · 425 阅读 · 0 评论 -
hdu 1849Rabbit and Grass(博弈)
超简单题用上^就行了,详细见NIM游戏小NIM#includeint main(){ int m,s; while(scanf("%d",&m)&&m) { int ans=0; for(int i=0;i<m;i++) { scanf("%d",&s); ans^=s; } if(ans) printf(原创 2012-04-04 16:47:48 · 534 阅读 · 0 评论 -
hdu 2149hdu Public Sale
博弈题,记住SG函数值是唯一的,所以只有在n>=m时可以有多种选法所以只需在平常的博弈中加个IF(N>=m)就行了#include#include#define N 1111int sg[N],s[N],m,n;bool h[N];void ssgg(){ int i,j; sg[0]=0; for(i=1;i<N;i++) { memset(h,0,sizeo原创 2012-04-05 20:23:57 · 602 阅读 · 0 评论 -
hdu 2188悼念512汶川大地震遇难同胞——选拔志愿者(博弈)
简单博弈就那样,懂SG函数就成,最近做的博弈都千篇一律。。。#include#include#define N 11110int sg[N],s[N],m,n;bool h[N];void ssgg(){ int i,j; sg[0]=0; for(i=1;i<N;i++) { memset(h,0,sizeof(h)); for(j=1;j<=n;j++)原创 2012-04-05 20:37:39 · 1015 阅读 · 0 评论