ac自動機模板題
下面說幾個注意點:
1、題目中說字元是可見字元,可見字元的asc碼是32--127 ,由於不清楚這一點wa了無數次
2、發現ac自動機網上**都是用指標來寫的,我這裡提供靜態陣列的寫法
**如下:
#include#include#include#include#include#include#include#include#include#include#define n 60005
#define inf 0x7ffffff
#define eps 1e-9
#define pi acos(-1.0)
using namespace std;
int f[n],last[n],vis[n];
int flag;
struct trie
void insert(char* s,int v)
val[u] = v;
}void getfail()
}while(!q.empty())}}
void print(int j)
}void find(char *t)
}}trie;
int main()
trie.getfail();
int m,ans = 0;
scanf("%d",&m);
for(i = 1; i <= m; i++)
}printf("total: %d\n",ans);
}return 0;
}
HDU2896 AC自動機 模板
思路 因為不同病毒特徵碼不會相同。ac自動機,然後對於每乙個輸出即可。注意 以上字串中字元都是ascii碼可見字元 不包括回車 g mle。include include include include include includeusing namespace std const int n 1...
HDU 2896 AC自動機模板題
題目鏈結 題目大意 多個模式串。多個匹配串。其中串的字元範圍是 0 127 問匹配串中含有哪幾個模式串。解題思路 ac自動機模板題。注意一下字元範圍。cnt記錄這個模式串的個數改為這個模式串的index。find的時候,把找到的index壓入vector裡面即可。注意有多個匹配串,每次find之後會...
hdu2896 AC自動機 病毒侵襲
同樣是一道很裸的ac自動機,統計哪些特徵碼出現在 的原始碼上,匹配成功時不要將val賦值為0,因為後面還有文字串要匹配,另外要注意編號需要從小到大輸出。include include includeusing namespace std const int maxn 100000 10 const ...