青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

syhd142  
日歷
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011
統計
  • 隨筆 - 23
  • 文章 - 122
  • 評論 - 31
  • 引用 - 0

導航

常用鏈接

留言簿(2)

隨筆檔案(23)

文章分類(270)

文章檔案(122)

我的豆瓣

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

 
由于論文的需要,看了一下AC自動機的原理,感覺就是trie樹+kmp,這兩個單獨都寫過,
但是合在一起還真沒寫過,參照網上的代碼寫了一個HDU上的題目,水的很,入門級別的。
#include <stdio.h>
#include 
<stdlib.h>
#include 
<string.h>

#define N 500005
#define KIND 26

struct node
{
    node 
*fail;
    node 
*next[KIND];
    
int count;
    node()
        {
            fail 
= NULL;
            count 
= 0;
            memset(next, 
0sizeof(next));
        }
}
*queue[N];

void insert(node *root, char *str)
{
    
int i = 0, index;
    node 
*= root;
    
while(str[i])
    {
        index 
= str[i] - 'a';
        
if(p->next[index] == NULL) p->next[index] = new node();
        p 
= p->next[index];
        i
++;
    }
    p
->count++;
}

void build(node *root)
{
    
int front = 0, rear = 0;
    root
->fail = NULL;
    queue[rear
++= root;
    
while(front < rear)
    {
        node 
*tmp = queue[front++];
        node 
*= NULL;
        
for(int i = 0; i < KIND; i++)
        {
            
if(tmp->next[i])
            {            
                p 
= tmp->fail;
                
while(p)
                {
                    
if(p->next[i])
                    {
                        tmp
->next[i]->fail = p->next[i];
                        
break;
                    }
                    p 
= p->fail;
                }
                
if(!p) tmp->next[i]->fail = root;
                queue[rear
++= tmp->next[i];
            }
        }
    }
}

char str[1000005];

int query(node *root)
{
    
int i = 0, ans = 0, index;
    node 
*= root, *tmp;
    
while(str[i])
    {
        index 
= str[i] - 'a';
        
while(p->next[index] == NULL && p != root) p = p->fail;
        p 
= p->next[index];
        
if(!p) p = root;
        tmp 
= p;
        
while(tmp != root)
        {
            ans 
+= tmp->count;
            tmp
->count = 0;
            tmp 
= tmp->fail;
        }
        i
++;
    }
    
return ans;
}

int main()
{
    
int t, nkey, ans;
    
char key[100];
    scanf(
"%d"&t);
    
while(t--)
    {
        node 
*root = new node();
        scanf(
"%d"&nkey);
        
for(int i = 0; i < nkey; i++)
        {
            scanf(
"%s", key);
            insert(root, key);
        }
        build(root);
        scanf(
"%s", str);
        ans 
= query(root);
        printf(
"%d\n", ans);
    }
    
return 0;
}
posted on 2011-01-05 17:38 Fucker 閱讀(233) 評論(0)  編輯 收藏 引用 所屬分類: ACM/ICPC字符串
 
Copyright © Fucker Powered by: 博客園 模板提供:滬江博客
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品资源在线观看| 一区二区三区四区五区视频| 亚洲缚视频在线观看| 在线国产精品播放| 亚洲欧洲一区二区三区在线观看 | 久久这里有精品15一区二区三区| 欧美与黑人午夜性猛交久久久| 欧美一区视频在线| 麻豆精品精华液| 欧美日韩国语| 国产亚洲欧洲997久久综合| 国产一区二区主播在线| 亚洲国产精品一区二区第四页av| 91久久视频| 欧美在线观看视频| 亚洲大胆人体在线| 亚洲精品自在在线观看| 亚洲欧美在线看| 母乳一区在线观看| 国产精品国产三级国产| 精品成人国产| 亚洲男人天堂2024| 欧美国产精品一区| 亚洲愉拍自拍另类高清精品| 久久综合影视| 国产视频久久网| 一区二区欧美激情| 蜜桃av一区| 亚洲性线免费观看视频成熟| 国产一区二区精品久久91| 亚洲黑丝在线| 久久av在线看| 日韩午夜三级在线| 美女91精品| 国产亚洲激情在线| 亚洲欧美在线一区二区| 欧美激情精品久久久久久蜜臀| 亚洲午夜电影在线观看| 欧美成人精品在线| 在线成人www免费观看视频| 亚洲女同同性videoxma| 亚洲日韩欧美视频| 蜜臀av在线播放一区二区三区| 国产乱码精品一区二区三| 在线亚洲一区观看| 亚洲欧洲免费视频| 免费看成人av| 一区视频在线| 久久久精品国产免大香伊 | 久久婷婷亚洲| 欧美一区二区三区的| 国产精品人人做人人爽| 一区二区三区视频观看| 欧美福利视频在线观看| 久久综合色播五月| 伊人久久大香线| 久久夜色撩人精品| 久久精品一区蜜桃臀影院| 国产小视频国产精品| 欧美综合第一页| 午夜精品久久久久久久99热浪潮| 国产精品青草久久| 欧美一区二区福利在线| 午夜日韩激情| 国产主播一区二区三区四区| 久久人人超碰| 久久―日本道色综合久久| 136国产福利精品导航网址应用| 浪潮色综合久久天堂| 久久视频这里只有精品| 亚洲激情偷拍| 亚洲美女av黄| 国产精自产拍久久久久久蜜| 久久精品国产亚洲高清剧情介绍| 欧美在线免费| 亚洲精品影院在线观看| 在线一区二区三区四区五区| 国产精品亚洲片夜色在线| 久久aⅴ国产欧美74aaa| 久久亚洲捆绑美女| 日韩午夜电影av| 中文精品视频一区二区在线观看| 国产精品嫩草影院av蜜臀| 欧美在线观看一区二区| 久久免费国产| 亚洲少妇一区| 欧美在线999| 亚洲精品在线二区| 久久精品一区| 媚黑女一区二区| 亚洲午夜精品一区二区| 欧美专区在线| 夜夜爽www精品| 欧美一区二区三区四区在线观看地址| 影音欧美亚洲| 中国亚洲黄色| 亚洲国产午夜| 亚洲欧美综合网| 99精品视频一区| 久久国产精品久久久久久久久久 | 国产精品va在线| 狼人社综合社区| 国产精品国产亚洲精品看不卡15| 玖玖在线精品| 国产精品看片资源| 亚洲成人自拍视频| 国产丝袜一区二区| 99精品国产福利在线观看免费| 国产一区二区三区电影在线观看| 亚洲黄一区二区| 伊人激情综合| 午夜一区二区三区不卡视频| 日韩视频在线一区二区| 欧美在线亚洲在线| 欧美一二区视频| 欧美日韩另类字幕中文| 欧美大胆成人| 国产一区二区三区免费不卡| 一本色道久久综合一区| 亚洲人成网在线播放| 久久大香伊蕉在人线观看热2| 亚洲一区二区视频在线观看| 欧美激情一区在线观看| 欧美成人精品1314www| 国内精品久久久久久久影视蜜臀| 亚洲一区www| 亚洲综合久久久久| 欧美视频在线观看免费| 亚洲日韩第九十九页| 亚洲日本电影在线| 另类综合日韩欧美亚洲| 欧美超级免费视 在线| 国产日韩欧美高清免费| 亚洲欧美日韩一区| 亚洲欧美亚洲| 国产精品一区亚洲| 校园激情久久| 久久精品中文字幕一区二区三区| 国产精品婷婷午夜在线观看| 在线视频亚洲欧美| 欧美亚洲视频在线观看| 国产精品久线观看视频| 亚洲图片你懂的| 欧美亚洲免费| 国产一区二区三区四区在线观看| 欧美一级专区免费大片| 久久久亚洲国产天美传媒修理工| 国产一区二三区| 麻豆成人在线观看| 亚洲区国产区| 午夜精品国产| 激情欧美日韩| 欧美高清视频www夜色资源网| 亚洲精品一区中文| 午夜精品999| 久久精品最新地址| 欧美国产精品va在线观看| 亚洲麻豆av| 国产精品久久国产精品99gif| 亚洲午夜精品一区二区三区他趣| 欧美中文字幕视频在线观看| 精品二区久久| 欧美理论在线播放| 亚洲欧美精品在线| 欧美va亚洲va日韩∨a综合色| 亚洲精品乱码| 国产女优一区| 欧美va亚洲va香蕉在线| 一区二区三区色| 美女脱光内衣内裤视频久久影院| 亚洲国产第一| 国产精品一区二区三区四区| 久久精品人人爽| 日韩视频免费观看高清完整版| 欧美亚洲综合久久| 亚洲精品欧美在线| 国产乱码精品一区二区三| 久热精品在线视频| 亚洲网址在线| 欧美大片一区二区三区| 亚洲欧美影院| 亚洲美女视频在线观看| 国产欧美在线视频| 欧美男人的天堂| 久久久99久久精品女同性| 99国产精品久久久| 欧美激情一区二区三区| 久久精品国产69国产精品亚洲| 亚洲免费精彩视频| 亚洲国产高清一区| 国产在线拍偷自揄拍精品| 欧美视频一区在线观看| 免费不卡欧美自拍视频| 欧美一区二区三区免费看| 日韩视频免费观看| 亚洲电影免费在线| 欧美国产成人在线| 久久全球大尺度高清视频| 午夜综合激情| 亚洲在线日韩|