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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

hdu2896 病毒侵袭 ac自动机

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu2896 病毒侵袭 ac自动机 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=2896

題目:

病毒侵襲

Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 23013????Accepted Submission(s): 5551


Problem Description 當太陽的光輝逐漸被月亮遮蔽,世界失去了光明,大地迎來最黑暗的時刻。。。。在這樣的時刻,人們卻異常興奮——我們能在有生之年看到500年一遇的世界奇觀,那是多么幸福的事兒啊~~
但網路上總有那么些網站,開始借著民眾的好奇心,打著介紹日食的旗號,大肆傳播病毒。小t不幸成為受害者之一。小t如此生氣,他決定要把世界上所有帶病毒的網站都找出來。當然,誰都知道這是不可能的。小t卻執意要完成這不能的任務,他說:“子子孫孫無窮匱也!”(愚公后繼有人了)。
萬事開頭難,小t收集了好多病毒的特征碼,又收集了一批詭異網站的源碼,他想知道這些網站中哪些是有病毒的,又是帶了怎樣的病毒呢?順便還想知道他到底收集了多少帶病毒的網站。這時候他卻不知道何從下手了。所以想請大家幫幫忙。小t又是個急性子哦,所以解決問題越快越好哦~~

?

Input 第一行,一個整數N(1<=N<=500),表示病毒特征碼的個數。
接下來N行,每行表示一個病毒特征碼,特征碼字符串長度在20—200之間。
每個病毒都有一個編號,依此為1—N。
不同編號的病毒特征碼不會相同。
在這之后一行,有一個整數M(1<=M<=1000),表示網站數。
接下來M行,每行表示一個網站源碼,源碼字符串長度在7000—10000之間。
每個網站都有一個編號,依此為1—M。
以上字符串中字符都是ASCII碼可見字符(不包括回車)。

?

Output 依次按如下格式輸出按網站編號從小到大輸出,帶病毒的網站編號和包含病毒編號,每行一個含毒網站信息。
web 網站編號: 病毒編號 病毒編號 …
冒號后有一個空格,病毒編號按從小到大排列,兩個病毒編號之間用一個空格隔開,如果一個網站包含病毒,病毒數不會超過3個。
最后一行輸出統計信息,如下格式
total: 帶病毒網站數
冒號后有一個空格。

?

Sample Input 3 aaa bbb ccc 2 aaabbbccc bbaacc

?

Sample Output web 1: 1 2 3 total: 1 思路:自動機模板題,不過內存卡的蛋疼。。。 一開始mle,然后我把數組改成short,結果瘋狂re,,還一直找不到原因,,,折騰了一個多小時,后來無意之下改成了int后(調整了數組大小)居然ac了,此刻我的內心是崩潰的== 原來short這么小,哭瞎 代碼:

?

1 #include <queue> 2 #include <cstring> 3 #include <cstdio> 4 using namespace std; 5 struct AC_auto 6 { 7 const static int LetterSize = 128; 8 const static int TrieSize = 128 * 510; 9 10 int tot,root,fail[TrieSize],end[TrieSize],next[TrieSize][LetterSize]; 11 12 int newnode(void) 13 { 14 memset(next[tot],-1,sizeof(next[tot])); 15 end[tot] = 0; 16 return tot++; 17 } 18 19 void init(void) 20 { 21 tot = 0; 22 root = newnode(); 23 } 24 25 int getidx(char x) 26 { 27 return (int)x; 28 } 29 30 void insert(char *ss,int x) 31 { 32 int len = strlen(ss); 33 int now = root; 34 for(int i = 0; i < len; i++) 35 { 36 int idx = getidx(ss[i]); 37 if(next[now][idx] == -1) 38 next[now][idx] = newnode(); 39 now = next[now][idx]; 40 } 41 end[now]=x; 42 } 43 44 void build(void) 45 { 46 queue<int>Q; 47 fail[root] = root; 48 for(int i = 0; i < LetterSize; i++) 49 if(next[root][i] == -1) 50 next[root][i] = root; 51 else 52 fail[next[root][i]] = root,Q.push(next[root][i]); 53 while(Q.size()) 54 { 55 int now = Q.front();Q.pop(); 56 for(int i = 0; i < LetterSize; i++) 57 if(next[now][i] == -1) next[now][i] = next[fail[now]][i]; 58 else 59 fail[next[now][i]] = next[fail[now]][i],Q.push(next[now][i]); 60 } 61 } 62 63 int match(char *ss,int n,int x) 64 { 65 int len,now,use[501],ff; 66 memset(use,0,sizeof use); 67 len = strlen(ss),now = root,ff=0; 68 for(int i = 0; i < len; i++) 69 { 70 int idx = getidx(ss[i]); 71 int tmp = now = next[now][idx]; 72 while(tmp) 73 { 74 if(end[tmp]) 75 use[end[tmp]]=1,ff=1; 76 tmp = fail[tmp]; 77 } 78 } 79 if(!ff)return 0; 80 printf("web %d:",x); 81 for(int j=1; j<=n; j++)if(use[j]) 82 printf(" %d",j); 83 printf("\n"); 84 return 1; 85 } 86 87 }; 88 89 AC_auto ac; 90 char ss[10011]; 91 int main(void) 92 { 93 int n,m,ans=0; 94 scanf("%d",&n); 95 ac.init(); 96 for(int i=1; i<=n; i++) 97 scanf("%s",ss),ac.insert(ss,i); 98 scanf("%d",&m); 99 ac.build(); 100 for(int i=1; i<=m; i++) 101 { 102 scanf("%s",ss); 103 if(ac.match(ss,n,i)) 104 ans++; 105 } 106 printf("total: %d\n",ans); 107 return 0; 108 }

?

轉載于:https://www.cnblogs.com/weeping/p/5937122.html

總結

以上是生活随笔為你收集整理的hdu2896 病毒侵袭 ac自动机的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久久久久久久久久久久久国产 | 国产香蕉尹人视频在线 | 自拍偷拍亚洲图片 | 国产免费无码XXXXX视频 | 91色偷偷 | 亚洲欧美一区二区三区四区 | 69精品久久久久久久 | 亚洲精品久久久久久宅男 | 欧美99热| www.精品久久| 国产精品99久久久久久久 | 日韩女优在线观看 | 欧美成人午夜影院 | 亚洲美女自拍偷拍 | 免费看黄色小视频 | 少妇精品一区二区三区 | 潘金莲一级淫片aaaaa | 天堂在线视频免费观看 | 边吃奶边添下面好爽 | 国产精品免费一区 | 亚洲三级视频在线观看 | 亚洲国产综合视频 | 日韩视频一区在线观看 | 午夜精品久久久久久久蜜桃 | 日韩欧美影院 | 天堂二区 | 伊人久久大香线蕉综合75 | 影音先锋欧美在线 | 亚洲精品热| 久久天堂精品 | 超碰在线观看免费 | av网站免费在线 | 日韩爽片 | 胸网站| 日韩黄色免费 | 性天堂网 | 蜜臀一区二区三区精品免费视频 | 国产精品无码人妻一区二区在线 | 国产免费又黄又爽又色毛 | 制服诱惑一区二区三区 | 亚洲色图 美腿丝袜 | 影音先锋中文字幕在线 | 午夜天堂精品久久久久 | 美女av免费看 | 中文字幕手机在线视频 | 国产夫妻自拍小视频 | 国产成人短视频 | 色av中文字幕 | 亚洲av日韩av高潮潮喷无码 | 嫩草精品| 色哟哟在线免费观看 | 国产黄频在线观看 | 一进一出视频 | 国产制服丝袜在线 | 国产伦精品一区二区三区照片91 | 91蝌蚪在线观看 | 国产成人啪精品 | 午夜精品三级久久久有码 | 亚洲一区二区高清视频 | 夜夜嗨av一区二区三区四区 | 国产成人精品无码免费看夜聊软件 | 成人免费xxxxxx视频 | 国产精品久久久久久久久久直播 | 亚洲欧美在线视频观看 | 91久久精品在线 | 自拍1区 | 女生喷液视频 | 欧美日韩国产一级片 | 97色在线观看 | 亚洲午夜在线播放 | 欧美人与性禽动交精品 | 久久成人久久爱 | 亚洲中文字幕无码专区 | 欧美伦理影院 | 少妇裸体淫交视频免费看高清 | 欣赏asian国模裸体pics | 色哟哟免费 | 久草在在线视频 | 国产黄色免费网站 | 羞辱极度绿帽vk | 亚洲91色 | 国产女人18毛片水真多1 | 日本人dh亚洲人ⅹxx | 国产日韩在线看 | 欧美高清另类 | 啪啪无遮挡 | 亚洲乱亚洲乱妇 | 亚洲图片小说区 | 国产视频在线观看网站 | 岳奶大又白下面又肥又黑水多 | 欧美巨大乳 | 亚洲激情视频网站 | 在线观看天堂av | 男插女在线观看 | 日日色综合 | 成a人片亚洲日本久久 | 在线你懂 | 日本成人三级 | 肉肉av福利一精品导航 |