字串遊戲 博弈論 trie

2022-02-04 06:28:20 字數 867 閱讀 1467

從前有個遊戲。遊戲分為 k 輪。

給定乙個由小寫英文本母組成的字串的集合 s,

在每輪遊戲開始時,雙方會得到乙個空的字串,

然後兩人輪流在該串的末尾新增字元,並且需要保證新的字串是 s 中某個串的字首,直到有一方不能操作,則不能操作的一方輸掉這一輪。

新的一輪由上一輪輸的人先手,最後一輪贏的人獲得遊戲勝利。

假定雙方都採取最優策略,求第一輪先手的一方能否獲勝。

輸入包含多組資料。

每組資料的第一行包含兩個整數 n,k,分別表示字串的數量和遊戲的輪數。

接下來 n 行,每行乙個由小寫英文本母組成的字串。

對於每組資料輸出一行,若先手能獲勝輸出 hy wins!,否則輸出 teacher wins!

2 3a

b3 1ab

chy wins!

hy wins!

1 ≤ n ≤ 1e5,1 ≤ k ≤ 1e9,保證所有字串長度不超過 1e5,資料組數不超過 10。

#include #include #include using namespace std;

int n,k,cnt,f[1000005],g[1000005];

char s[100005];

struct fdfdfd

}e[1000005];

void insert(char a,int len)

root=e[root].ch[j]; }}

void dfs(int x)

f[x]=0; g[x]=0;

for(int i=1;i<=26;++i) }

int main()

return 0;

}

魔法遊戲 博弈論

題目大意 給一顆樹,每個位置有乙個權值,每次乙個人可以選擇森林中的某棵樹的根節點,設其權值為a aa,那麼這個人可以選擇乙個k 2,a 1 k in 2,a 1 k 2,a 1 然後讓a aa變成 ak left lfloor frac ak right rfloor ka 如果乙個點權值變為0那麼...

博弈論 Nim遊戲

這種遊戲稱為nim博弈,遊戲過程中面臨的狀態成為局面。n im nimni m博弈不存在平局,只有先手必勝和先手必敗兩種情況。定理nim 博弈先手 必勝,當 且僅當a 1xora2 xor xoran 0nim博弈先手必勝,當且僅當 a 1 texta 2 text cdots text a n n...

石子遊戲 博弈論

有n n 堆石子,兩人輪流取石子,每次可以將一堆全部拿走,也可以選擇其中y y 個拿,但是要求y y 與這堆石子的總個數互質。求誰會勝利。明顯的博弈論之s g sg 函式。我們可以發現,質數的s g sg 值就等於上乙個質數的s g sg 值加一,而合數的s g sg值就是它的最小質因子的s g s...