下面這兩個模版應該就比較嚴密了,這個裡邊的f是從零開始的。
**出處:**:
1、sg打表
1//f:可以取走的石子個數 2//
sg:0~n的sg函式值 3//
hash:mex{}
4int
f[k],sg[n],hash[n];
5void getsg(int
n)
6中未出現的最小的非負整數
13if(hash[j]==0
)
17}
18}
19 }
2dfs
//注意 s陣列要按從小到大排序 sg函式要初始化為-1 對於每個集合只需初始化1遍
//n是集合s的大小 s[i]是定義的特殊取法規則的陣列
ints[n],sg[n],n;
int getsg(int
x)
for(i=0;; i++)
if(!vis[i])
return
sg[x];
}
博弈之sg函式(模板)
組合博弈的通解就是sg函式,學習了sg函式之後一直沒有咋用過。學習博弈的可以在nyoj上面做10道取石子題目,作為了對博弈也就有一定理解了。用的時候注意初始的時候只要初始sg 0 0 其他都通過函式求解。這裡貼乙個求解sg函式的模板。int sg n bool hash n void sg solv...
SG函式模板
首先定義mex minimal excludant 運算,這是施加於乙個集合的運算,表示最小的不屬於這個集合的非負整數。例如mex 3 mex 0 mex 0。對於乙個給定的有向無環圖,定義關於圖的每個頂點的sprague grundy函式g如下 g x mex,這裡的g x 即sg x 例如 取石...
SG函式模板
首先定義mex minimal excludant 運算,這是施加於乙個集合的運算,表示最小的不屬於這個集合的 非負整數 例如mex 3 mex 0 mex 0。對於乙個給定的有向無環圖,定義關於圖的每個頂點的 sprague grundy函式g如下 g x mex,這裡的g x 即sg x 例如 ...