鐵子和順溜在學習了博弈論的sg函式之後,解決了很多很多博弈題,現在他們遇到了一道難題。
給出乙個長度為 n 的數列,數列裡的每個元素都是個位數,這個數列的每乙個連續子數列都能生成
乙個十進位制數,對於子數列a[l~r],這個十進位制數的個位為a[r],十位為a[r - 1],...,最高位
為a[l]。
現在鐵子需要知道最小的不能被該數列的子數列生成的十進位製非負整數是多少?
輸入:
第一行乙個數字n。(1 ≤ n ≤ 1000)輸出:第二行n個數字di。(0 ≤ di ≤ 9)
輸出乙個數字表示答案。例:
43 0 1 2
輸出:4
解析:這題乍一看好像組合的種數很多達到將近n方種,而且沒法子表示出來,因為double也沒法表示上千位的數。
#include#include using namespace std;
const int m = 1000;
int a[m];
int sg[m];
int main()
} for (int i = 0; i < m; i++)
}} return 0;
}
博弈論 (SG函式)
首先定義mex minimal excludant 運算,這是施加於乙個集合的運算,表示最小的不屬於這個集合的非負整數。例如mex 3 mex 0 mex 0。對於乙個給定的有向無環圖,定義關於圖的每個頂點的sprague grundy函式g如下 g x mex,這裡的g x 即sg x 例如 取石...
博弈論SG函式
有n堆石子,每次可以從第1堆石子裡取1顆 2顆或3顆,可以從第2堆石子裡取奇數顆,可以從第3堆及以後石子裡取任意顆 這時看上去問題複雜了很多,但相信你如果掌握了本節的內容,類似的千變萬化的問題都是不成問題的。現在我們來研究乙個看上去似乎更為一般的遊戲 給定乙個有向無環圖和乙個起始頂點上的一枚棋子,兩...
博弈論 SG函式
學習博弈論不得不提一哈sg函式 關於sg函式的一些概念就不多說了 說下我自己的理解sg函式記錄為0的是p狀態 不為0記錄的是n狀態 相當於有個週期再迴圈 p n狀態輪番出現 sg模板 include include include define maxn 1000 using namespace s...