亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

|算法討論|AC自動機 學習筆記

2019-11-11 04:58:40
字體:
來源:轉載
供稿:網友

在學習AC自動機之前需要熟練掌握WA自動機、RE自動機與TLE自動機

模板題:Hdu 2222 KeyWords Search,解決先給出關鍵字后,再給出尋找文本進行匹配問題

#include<cstdio> #include<algorithm> #include<cstring> #include<queue> #define ms(i,j) memset(i,j, sizeof i); using namespace std;const int MAXN = 10000 + 5, _SIZE = 26; int n;struct acam{ int sz;//結點編號 int res; int ch[MAXN*51][_SIZE];//Tire int last[MAXN*51];//后綴鏈接 int f[MAXN*51];//失配函數 int val[MAXN*51][2];//結點的權值 bool used[MAXN*51];//用過 void init()//初始化 { ms(val,0); ms(ch,0); ms(used,false); sz = 1; res = 0; } void insert(char *s, int v)//插入一個模板 { int u = 0; int len = strlen(s); for (int i=0;i<len;i++) { int c = s[i] - 'a'; if (ch[u][c]) { u = ch[u][c]; } else { ch[u][c] = ++sz; u = ch[u][c]; } if (i==len-1) { val[u][0] = v; val[u][1]++; } } } void g(int j)//遞歸更新cnt { if (j&&!used[val[j][0]]) { res+=val[j][1]; used[val[j][0]] = true; g(last[j]); } } void find(char *T)//在T中匹配 { int len = strlen(T); int j = 0; for (int i=0;i<len;i++) { int c = T[i] - 'a'; j = ch[j][c]; if (val[j][0]) g(j); else if (last[j]) g(last[j]); } } void getFail()//獲得失配函數 { queue<int> q; f[0] = 0; for (int c=0;c<_SIZE;c++)//初始化進隊 { int u = ch[0][c]; if (u) { q.push(u); f[u] = 0; last[u] = 0; } } while (!q.empty()) { int r = q.front(); q.pop(); for (int c=0;c<_SIZE;c++) { int u = ch[r][c]; if (!u) { ch[r][c] = ch[f[r]][c]; continue; } q.push(u); int j = f[r]; while (j&&!ch[j][c]) j = f[j]; f[u] = ch[j][c]; last[u] = (val[f[u]][0]) ? (f[u]) : (last[f[u]]); } } } }ac;char s[1000000 + 5];int main() { int kase; scanf("%d", &kase); while (kase--) { ac.init(); scanf("%d", &n); for (int i=1;i<=n;i++) { scanf("%s", s); ac.insert(s,i); } scanf("%s", s); ac.getFail(); ac.find(s);
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人精品综合久久久| 成人免费福利视频| 国内久久久精品| 久久免费高清视频| 亚洲丁香婷深爱综合| 97在线精品视频| 亚洲视频一区二区三区| 国产一区二区三区在线观看网站| 亚洲社区在线观看| 国外成人在线直播| 91亚洲精品久久久久久久久久久久| 国产精品美女网站| 亚洲综合大片69999| 亚洲欧美日韩国产精品| 在线成人中文字幕| 久久久av免费| 久久久久久网站| 亚洲精品免费网站| 亚洲人精品午夜在线观看| 91精品国产综合久久久久久蜜臀| 91国产在线精品| 国产91精品黑色丝袜高跟鞋| 久久久99久久精品女同性| 国产欧洲精品视频| 成人黄色片网站| 亚洲直播在线一区| 国产一级揄自揄精品视频| 亚洲成人免费在线视频| 亚州国产精品久久久| 欧美激情网站在线观看| 精品一区二区三区四区| www.日韩系列| 欧美国产一区二区三区| 欧美性黄网官网| 国产女人精品视频| 亚洲缚视频在线观看| 日韩美女在线看| 国产精品日韩久久久久| 亚州精品天堂中文字幕| 免费av在线一区| 成人在线观看视频网站| 欧美精品手机在线| 久久久久久久一| 91亚洲精品久久久久久久久久久久| 成人国产在线视频| 亚洲欧美制服第一页| 久久精品国产久精国产思思| 91禁外国网站| 亚洲电影免费在线观看| 亚洲日本中文字幕| 色中色综合影院手机版在线观看| 在线成人激情黄色| 欧美日韩在线看| 国产精品激情av在线播放| 国产欧美精品日韩精品| 亚洲经典中文字幕| 欧美日韩国产页| 欧美日韩国产二区| 欧美激情免费看| 热久久免费视频精品| 国产精品视频导航| 亚洲国产精彩中文乱码av| 欧美电影免费看| 国内精品久久久久| 在线播放日韩专区| 欧洲美女免费图片一区| 欧美成人免费全部| 亚洲精品网址在线观看| 正在播放亚洲1区| 欧日韩在线观看| 久久免费视频网站| 国产日韩在线视频| 亚洲欧洲一区二区三区在线观看| 精品性高朝久久久久久久| 国产美女扒开尿口久久久| 色婷婷久久一区二区| 亚洲一区二区三区sesese| 精品日本美女福利在线观看| 青青青国产精品一区二区| 亚洲福利视频网站| 性欧美xxxx交| 美日韩在线视频| 亚洲视频777| 成人精品视频99在线观看免费| 久久久av电影| www.亚洲天堂| 欧美高清在线播放| 国产精品wwww| 亚洲精品欧美一区二区三区| 久久久久久久亚洲精品| 国产91精品视频在线观看| 欧美精品在线免费| 日韩av中文字幕在线播放| 91亚洲精品一区| 久久精品视频导航| 久久精品男人天堂| 日韩精品中文在线观看| 日韩中文字幕在线观看| 日本三级久久久| 欧美大片在线看免费观看| 欧美在线一区二区视频| 欧美精品在线视频观看| 在线播放精品一区二区三区| 欧美亚洲另类激情另类| 91久久中文字幕| 欧美在线观看一区二区三区| 久久久国产91| 国产精品久久久久福利| 欧美wwwxxxx| 亚洲毛片一区二区| 91高清视频免费观看| 久久影视三级福利片| 亚洲精品自在久久| 欧美日韩国产中文字幕| 久久综合伊人77777蜜臀| 538国产精品视频一区二区| 国产精品自拍网| 国产视频久久久| 亚洲黄色在线看| 日本精品免费观看| 亚洲激情在线观看| 欧美性猛交xxxx久久久| 日韩精品视频中文在线观看| 国产精品日日摸夜夜添夜夜av| 91国产视频在线| 黑人巨大精品欧美一区二区免费| 成人性生交大片免费观看嘿嘿视频| 亚洲成人网在线观看| 国产精品久久国产精品99gif| 久久久久久一区二区三区| 国内精品模特av私拍在线观看| 91中文字幕一区| 91av在线免费观看| 色综合久久天天综线观看| 97涩涩爰在线观看亚洲| 日韩亚洲第一页| 伊人伊成久久人综合网小说| 日韩女在线观看| 欧美极品美女视频网站在线观看免费| 亚洲成人黄色在线| 欧美精品在线网站| 欧美成人精品xxx| 国产美女精品视频| 久久精品在线视频| 91精品在线观看视频| 国产精品欧美日韩| 尤物九九久久国产精品的分类| 欧美整片在线观看| 秋霞av国产精品一区| 国产精品无码专区在线观看| 久久精品国产久精国产思思| 亚洲国产精品va在线观看黑人| 亚洲欧美日韩高清| 欧美激情亚洲国产| 午夜免费日韩视频| 日韩大片在线观看视频| 国产在线观看精品一区二区三区| www.99久久热国产日韩欧美.com| 精品国产精品三级精品av网址| 国产成人精品久久久| 亚洲欧美制服综合另类| 中日韩美女免费视频网址在线观看| 亚洲精品第一国产综合精品| 欧美中文字幕在线观看|