和hdu2222題相似的水題
1)連著re了好多發,沒想明白,看了一下網上題解才知道,輸入的不一定都是字母,所以next要開100!!!!!!!
#include #include int tot;
char str[10005];
int t;
//int time[100];
struct trie
}*queue[100005];
struct ***
web[1005];
trie *root;
void build()
if(p->num==0)
p->num=tot++; //給每乙個單詞結尾附上序號
}void build_fail()
v=v->fail;
}if(v==null)
u->next[i]->fail=root;
}queue[ed++]=u->next[i];}}
}}void search(int n)
q=q->fail;
}i++;
}}int main() {
int n;
int i;
scanf("%d",&n);
tot=1;
memset(web,0,sizeof(web));
root=new trie();
for(i=0; i
AC自動機(病毒侵襲 )
題目大意 中文題目 具體思路 ac自動機模板題,編號的時候注意,是按照給定的id進行編號的。然後輸出的時候注意去重,雖然按道理來講通過last陣列是不會有重複的,但是如果是這種情況,病毒模板aaa,然後給你乙個模板串aaaaa,這樣的話,就肯定會有重複的了,所以需要去重,其次輸出的時候按照公升序輸出...
hdu2896 AC自動機 病毒侵襲
同樣是一道很裸的ac自動機,統計哪些特徵碼出現在 的原始碼上,匹配成功時不要將val賦值為0,因為後面還有文字串要匹配,另外要注意編號需要從小到大輸出。include include includeusing namespace std const int maxn 100000 10 const ...
hdu 2896 病毒侵襲 AC自動機
hdu 2896 題目大意 給出n個模式串,最後給出m個主串 問有主串出現過哪些模式串,最後輸出哪些主串能匹配模式串 解題思路 ac自動機建立字典樹的用w值標記第幾個模式串 定義k值,匹配時若字典樹中的某個結點不等於k且w不為0則記錄該點 有多個主串需要匹配,所以不需要改變w的值,但可以判斷k的值 ...