從前有個遊戲。遊戲分為 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...