SG 函式初步 HDU 1536 && HDU 1944
題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=1944
http://acm.hdu.edu.cn/showproblem.php?pid=1536
給定每一次可以取的石頭數,給定很多種情況,每一種情況有若干堆石頭,判斷先手勝負。
SG函式打表,然後直接抑或,判斷結果是否為0,第一次寫SG函式,貼個程式碼,慢慢理解。
程式碼:
/* ***********************************************
Author :rabbit
Created Time :2014/7/4 12:00:18
File Name :3.cpp
************************************************ */
#pragma comment(linker, "/STACK:102400000,102400000")
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <sstream>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <string>
#include <time.h>
#include <math.h>
#include <queue>
#include <stack>
#include <set>
#include <map>
using namespace std;
#define INF 0x3f3f3f3f
#define eps 1e-8
#define pi acos(-1.0)
typedef long long ll;
int f[110],d[20010],g[110];
int SG(int p,int k){
memset(g,0,sizeof(g));
for(int i=0;i<k;i++){
int t=p-f[i];
if(t<0)break;
if(d[t]==-1)d[t]=SG(t,k);
g[d[t]]=1;
}
for(int i=0;;i++)
if(!g[i])return i;
}
int main()
{
//freopen("data.in","r",stdin);
//freopen("data.out","w",stdout);
int n;
while(~scanf("%d",&n)){
if(!n)break;
for(int i=0;i<n;i++)scanf("%d",&f[i]);
sort(f,f+n);
memset(d,-1,sizeof(d));
d[0]=0;
for(int i=1;i<=10010;i++)
d[i]=SG(i,n);
int m;
scanf("%d",&m);
while(m--){
int k;
scanf("%d",&k);
int sum=0,v;
while(k--){
scanf("%d",&v);
sum^=d[v];
}
if(!sum)printf("L");
else printf("W");
}
puts("");
}
return 0;
}
相關文章
- HDU1729 Stone Game (SG函式)GAM函式
- HDU 5795 A Simple Nim (SG函式+打表找規律)函式
- HDU 1846-Brave Game(巴什博弈-SG函式)GAM函式
- HDU 1848 Fibonacci again and again(SG函式)AI函式
- HDU 2897-邂逅明下(博弈-SG函式打表找規律)函式
- HDU 1848 Fibonacci again and again (尼姆博弈+sg函式)AI函式
- HDU 1847-Good Luck in CET-4 Everybody!(博弈-SG函式/找規律)Go函式
- HDU 1709 The Balance(母函式)函式
- HDU2588GCD(尤拉函式)GC函式
- 杭電ACM hdu 2110 Crisis of HDU 解題報告(母函式)ACM函式
- HDU 4002Find the maximum(尤拉函式)函式
- 杭電ACM hdu 1171 Big Event in HDU 解題報告(母函式)ACM函式
- HDU 1695-GCD(容斥原理+尤拉函式)GC函式
- HDU 3501 Calculation 2 (尤拉函式應用)函式
- NIM遊戲/SG函式遊戲函式
- HDU3501 Calculation 2(尤拉函式推廣)函式
- HDU 1028 Ignatius and the Princess III:dp or 母函式函式
- HDU 2082-找單詞(母函式-有限次)函式
- 杭電ACM hdu 2152 Fruit 解題報告(母函式)ACMUI函式
- HDU 4712Hamming Distance(隨機函式運用)隨機函式
- 杭電ACM hdu 1398 Square Coins 解題報告(母函式)ACM函式
- Shape of HDU
- HDU4787
- 博弈論進階之SG函式函式
- 博弈學習(一) NIM + SG函式函式
- HDU 2052(C語言+註釋)+HDU 2090C語言
- HDU Find the hotel(RMQ)MQ
- HDU1792(公式)公式
- hdu 2846 Repository
- hdu 1695 GCDGC
- HDU 2051 Bitset
- 杭電ACM hdu 2082 找單詞 解題報告(母函式)ACM函式
- 簡單的揹包問題(入門)HDU2602 HDU2546 HDU1864
- HDU 1028-Ignatius and the Princess III(拆分整數-母函式-無限次)函式
- 杭電ACM hdu 2079 選課時間 解題報告(母函式)ACM函式
- HDU 3221Brute-force Algorithm(降冪公式 神似hdu4549)Go公式
- 博弈論基礎之sg函式與nim函式
- SG_007_CHAPTER 4 (匯聚函式)APT函式