日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【HDOJ 5384】Danganronpa

發布時間:2023/12/31 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【HDOJ 5384】Danganronpa 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【HDOJ 5384】Danganronpa

AC自己主動機。

。。

當時感覺用字典樹 標神也往自己主動機想來著。。手太生加上時間緊迫也沒敲……回來一看題解什么AB同一時候建自己主動機。。。頓時愣了 什么叫同一時候建= =問了問財神說普通自己主動機。

。B串單建 立刻瘋了……這不就是模板題么。。

。 B串建自己主動機 A串枚舉查詢 寫完興沖沖1T……立刻想法優化 建fail時壓縮一下 查詢時直接累計 不再循環找fail 171ms。。

。第二個自己主動機的題。。距上次蠻久了 這次一復習 感覺印象差點兒相同有了

代碼(模板)例如以下:

#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <queue>using namespace std;typedef struct Node {int ch[26],cnt,fail; }Node;Node tr[2600011]; char a[100001][10002]; int tp;int SetNode() {memset(tr[tp].ch,-1,sizeof(tr[tp].ch));tr[tp].cnt = 0;return tp++; }void Add(int site,char *str) {int i,k;for(i = 0; str[i]; ++i){k = tr[site].ch[str[i] - 'a'];if(k == -1) tr[site].ch[str[i] - 'a'] = k = SetNode();site = k;}tr[site].cnt++; }void Build_AC(int site) {queue <int> q;q.push(site);int i,tmp;while(!q.empty()){site = q.front();q.pop();for(i = 0; i < 26; ++i){if(tr[site].ch[i] == -1) continue;if(!site) tr[tr[site].ch[i]].fail = 0;else{tmp = tr[site].fail;while(tmp && tr[tmp].ch[i] == -1) tmp = tr[tmp].fail;tr[tr[site].ch[i]].fail = (tr[tmp].ch[i] == -1)? tmp: tr[tmp].ch[i];if(tr[tmp].ch[i] != -1) ///壓縮計數器tr[tr[site].ch[i]].cnt += tr[tr[tmp].ch[i]].cnt;}q.push(tr[site].ch[i]);}} }int Search(int site,char *str) {int i,k,ans = 0;for(i = 0; str[i]; ++i){k = str[i] - 'a';while(site && tr[site].ch[k] == -1) site = tr[site].fail;if(tr[site].ch[k] != -1) site = tr[site].ch[k];ans += tr[site].cnt;}return ans; }int main() {int t,na,nb,i;char str[100005];scanf("%d",&t);while(t--){scanf("%d %d",&na,&nb);tp = 0;SetNode();for(i = 0; i < na; ++i){scanf("%s",a[i]);}while(nb--){scanf("%s",str);Add(0,str);}Build_AC(0);for(i = 0; i < na; ++i){printf("%d\n",Search(0,a[i]));}}return 0; }

轉載于:https://www.cnblogs.com/yutingliuyl/p/7039236.html

總結

以上是生活随笔為你收集整理的【HDOJ 5384】Danganronpa的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。