zoukankan      html  css  js  c++  java
  • 菜不成声 的 ac自动机 刷题记录

    HDU2222 Keywords Search

    • 模板题。数组开小了结果会T。。。
    • 代码
       1 #include <bits/stdc++.h>
       2 #define nmax 10010
       3 
       4 using namespace std;
       5 char in[nmax],b[1000010];
       6 int t[50*nmax][30];
       7 int f[50*nmax],v[nmax*50];
       8 int n,cnt=0,ans=0;
       9 
      10 void ins(){
      11     int idx=0,l=strlen(in);
      12     for (int i=0; i<l; i++) {
      13         int x=in[i]-'a';
      14         if(!t[idx][x]) t[idx][x]=++cnt;
      15         idx=t[idx][x];
      16     }
      17     v[idx]++;
      18 }
      19 
      20 void init(){
      21     for (int i=0; i<=cnt; i++) {
      22             for (int j=0; j<26; j++) t[i][j]=0;
      23             f[i]=v[i]=0;
      24     }
      25     cnt=0;
      26     ans=0;
      27 }
      28 
      29 void bf(){
      30     queue <int> q;
      31     for (int i=0; i<26; i++) if(t[0][i]) q.push(t[0][i]);
      32     while(!q.empty()){
      33         int u=q.front();
      34         q.pop();
      35         for (int i=0; i<26; i++) {
      36             if( t[u][i] ) {
      37                 f[t[u][i]]=t[f[u]][i];
      38                 q.push(t[u][i]);
      39             }else t[u][i]=t[f[u]][i];
      40         }
      41     }
      42 }
      43 
      44 void solve(){
      45     int p=0,l=strlen(b);
      46     for (int i=0; i<l; i++) {
      47         int x=b[i]-'a';
      48         p=t[p][x];
      49         for (int j=p; j&&~v[j]; j=f[j]) ans+=v[j],v[j]=-1;
      50     }
      51 }
      52 
      53 int main(){
      54     int cas;
      55     cin>>cas;
      56     while(cas--){
      57         init();
      58         scanf("%d",&n);
      59         for (int i=0; i<n; i++) { scanf("%s",in); ins(); }
      60         bf();
      61         scanf("%s",b);
      62         solve();
      63         printf("%d
      ",ans);
      64     }
      65     return 0;
      66 }
      o(* ̄▽ ̄*)ブ

    HDU2896 病毒侵袭

  • 相关阅读:
    201403-1
    201312-5 I’m stuck!
    201312-4
    201312-3
    201312-2 ISBN号码
    深度学习-李宏毅PPT总结
    梯度下降
    离散时间信号与系统-频域:5
    离散时间信号与系统-时域:4
    离散时间信号与系统-时域:3
  • 原文地址:https://www.cnblogs.com/jiecaoer/p/11365743.html
Copyright © 2011-2022 走看看