AC自動機 病毒侵襲 hdu2896

2021-06-23 08:53:25 字數 719 閱讀 5246

和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的值 ...