HDU 2896 病毒侵襲 (AC自動機模板)
來源:程序員人生 發(fā)布時間:2015-04-08 08:33:32 閱讀次數(shù):2867次
病毒侵襲
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 13063 Accepted Submission(s): 3378
Problem Description
當太陽的光輝逐步被月亮遮蔽,世界失去了光明,大地迎來最黑暗的時刻。。。。在這樣的時刻,人們卻異常興奮――我們能在有生之年看到500年1遇的世界奇觀,那是多么幸福的事兒啊~~
但網(wǎng)路上總有那末些網(wǎng)站,開始借著民眾的好奇心,打著介紹日蝕的旗號,大肆傳播病毒。小t不幸成為受害者之1。小t如此生氣,他決定要把世界上所有帶病毒的網(wǎng)站都找出來。固然,誰都知道這是不可能的。小t卻執(zhí)意要完成這不能的任務,他說:“子子孫孫無窮匱也!”(愚公后繼有人了)。
萬事開頭難,小t搜集了好多病毒的特點碼,又搜集了1批詭異網(wǎng)站的源碼,他想知道這些網(wǎng)站中哪些是有病毒的,又是帶了怎樣的病毒呢?順便還想知道他到底搜集了多少帶病毒的網(wǎng)站。這時候候他卻不知道何從下手了。所以想請大家?guī)蛶兔ΑP又是個急性子哦,所以解決問題越快越好哦~~
Input
第1行,1個整數(shù)N(1<=N<=500),表示病毒特點碼的個數(shù)。
接下來N行,每行表示1個病毒特點碼,特點碼字符串長度在20―200之間。
每一個病毒都有1個編號,依此為1―N。
不同編號的病毒特點碼不會相同。
在這以后1行,有1個整數(shù)M(1<=M<=1000),表示網(wǎng)站數(shù)。
接下來M行,每行表示1個網(wǎng)站源碼,源碼字符串長度在7000―10000之間。
每一個網(wǎng)站都有1個編號,依此為1―M。
以上字符串中字符都是ASCII碼可見字符(不包括回車)。
Output
順次按以下格式輸出按網(wǎng)站編號從小到大輸出,帶病毒的網(wǎng)站編號和包括病毒編號,每行1個含毒網(wǎng)站信息。
web 網(wǎng)站編號: 病毒編號 病毒編號 …
冒號后有1個空格,病毒編號按從小到大排列,兩個病毒編號之間用1個空格隔開,如果1個網(wǎng)站包括病毒,病毒數(shù)不會超過3個。
最后1行輸出統(tǒng)計信息,以下格式
total: 帶病毒網(wǎng)站數(shù)
冒號后有1個空格。
Sample Input
3
aaa
bbb
ccc
2
aaabbbccc
bbaacc
Sample Output
Source
2009 Multi-University Training Contest 10
- Host by NIT
題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2896
題目分析:給病毒建立trie樹,跑1下ac自動機,記錄1下序號,注意可見的ASCII碼從33到128