題意:
題意:給出n個串,然後給一篇文章,問這n個串有多少個在文章裡面出現過。。。
trick:n個串可能有相同的,需按照不同串處理。
剛學ac自動機,沒學明白,這**也是照著別人部落格寫的,弱爆--#
#include #include #include #include #include using namespace std;
char str[1000000+100];
struct node
}*root;
void insert()
else
p=p->next[id];
}p->count++;
}void getfail()
p=p->fail;
}if(!p)
son->fail=root;
}que.push(son);}}
}}void query()
else break;
temp=temp->fail;}}
printf("%d\n",cnt);
}int main()
{ int t;
scanf("%d",&t);
while(t--)
{root=new node;
root->init();
root->fail=null;
int n;
scanf("%d",&n);
getchar();
for(int i=0;i
hdu2222 (AC自動機模板)
題 學習出 主要是fail的建立。在跳的過程就是不斷跳fail,而不是跳到乙個fail再往下!include include include include include using namespace std typedef long long ll const int m 2e6 6 int ...
HDU2222 AC自動機 入門模板
hdu 222 keywords search ac 自動機入門模板題 調了一下午 因為輸入最後乙個字串打成了 d還有兩處取反符號打錯 wa了無數次 血淚史 以後要注意 ac自動機思路 這個演算法的目的 用幾個給定的模式串去在乙個串 t 中匹配 簡單概括實現方式 1.對所有的模式串建trie樹。2....
HDU2222(AC自動機模板題)
aho corasick automaton,該演算法在1975年產生於貝爾實驗室,是著名的多模匹配演算法。ac自動機是字典樹和kmp的結合。可以解決的問題 給定多個單詞,再給乙個字串,問有多少個單詞在這個字串中出現過。這個問題可以用kmp挨個串匹配,但是如果單詞數目多的話肯定會超時。數中節點 st...