hdu模版水題目2896

2022-08-19 18:06:10 字數 1000 閱讀 2784

沒啥好說的。**注釋,可以秒懂

//

照打的。跟模板的差別是引入了used陣列和乙個flag標記

#include #include

#include

using

namespace

std;

const

int maxn = 510*200

;int ch[maxn][128

],fail[maxn],end[maxn];

introot,sz,cnt;

char str[10010

];bool used[510

];int

newnode()

void

init()

void insert(char *str,int

id) end[now] = id;//

記錄當前單詞的id

}void

getfail()

}while(!q.empty())

else

}}}//

傳入的id是為了輸出時的方便

void query(char *str,int

id)

*///

在這裡行不通,因為為了避免重複把標記改動了,對另外乙個單詞進行查詢的時候就出錯

while(tmp !=root)

tmp =fail[tmp];}}

//表示在此串中存在單詞

if(flag)

printf("\n

");}

}int

main()

getfail();

cnt = 0

; scanf("%d

",&m);

for(int i = 1;i <= m;i++)

printf(

"total: %d\n

",cnt);

return0;

}

hdu 2896 AC自動機模版題

題意 輸出出現模式串的id,還是用end記錄id就可以了。本題有個關鍵點 以上字串中字元都是ascii碼可見字元 不包括回車 也就說ac自動機的trie樹需要128個單詞分支。include include include using namespace std const int maxw 210...

hdu2896 病毒侵襲

剛剛看完ac自動兩天就發現了這道自動機的題目,這題不是很難,但是有幾個細節需要注意一下,首先 中的病毒型別不能重複,也就是說沒有可能出現兩個同樣的病毒,我的處理方法是利用set這樣的話判重和排序都省了,其次輸出的 編號和最終的病毒 數不是一樣的 我就是卡在這裡一直wa 爆棧的童鞋記得size是128...

HDU 2896 病毒侵襲

那什麼可見字元是坑爹的吧 include include include include include include include include include include include include include include include include include i...