少有的會做的ac自動機題
、這個題是匹配模式串、
所以就不需要匹配的過程,只需要建出fail樹,然後直接拓撲
由於每次加進去乙個單詞,這個單詞的每乙個字母都有可能作為最後乙個字母影響他的失配,所以詞路徑上的每個字母都需要標記
然後失配是保證了字尾相等,所以如果失配是詞,則這個點的所有繼承過來的標記都可以傳給失配
由於fail是一棵樹,所以需要拓撲來保證每乙個點都被標記充分
碼:#include#include#include#include#includeusing namespace std;
int i,l,rt,ch[1000005][26],j,n,ans[205],tot,bj[1000005],sp[1000005],rd[1000005];
char str[205][1000005];
queueq;
vectorv[1000005];
void jia()
{ int o=rt;
for(j=0;j
2017 9 7 騎士 思考記錄
這個題其實乙個月前就想寫了 但當時看到環基樹就嚇跑了 但其實這個題除了環要找出來單獨跑一邊dp 別的就真的沒了 先把環找出來 由於只有乙個環,所以直接dfs 然後對環上的每個點做一遍子樹的dp 然後把環拆下來,列舉第乙個點的狀態 從這個點左邊一直做到這個點右邊 然後就沒了 注意它可能有多個子集 乙個...
2017 10 28 壓縮 思考記錄
這個題首先要知道m和r不是棧的搭配,是貪心的搭配,就是向左找到第乙個m。如 abababab cdcdcdcd abababab cdcdcdcd abrrcdcdcdcdr mabrrcdrr r 然後如果你想使用r來重複兩個相同區間就必須保證m出現在最左端,或整串都不出現 所以f 左端點 右端點...
每日思考記錄(12)
因為最近聽說崽崽在學習的時候老是進不去狀態,然後效率很低,自己心裡是想學點東西,但是奈何行動跟不上,那樣自己就會有一些愧疚感,感覺自己沒去學習,而最近要掌握的東西又很重要,針對這幾個點,我講講自己看法和網上一些 盟友 的經驗 找到適合自己的學習節奏,來提高學習效率 學習節奏這種東西真急不來,有的時候...