思路:
因為不同病毒特徵碼不會相同。
ac自動機,然後對於每乙個輸出即可。
注意:以上字串中字元都是ascii碼可見字元(不包括回車);g++ mle。
//#include #include#include#include#include#includeusing namespace std;
const int n=1e5+10; //500個串,長度為200
struct trie;
trie q[n],*root;
int tol;
trie* creat()
void insert(char *str,int num)
p->num=num;
}void build_ac()
temp=temp->fail;
}if(temp==null)
p->next[i]->fail=root;
}que.push(p->next[i]);}}
}}int ans[510],nn;
char word[10010];
void query()
}}char s[220];
int main()
build_ac();
scanf("%d",&m);
int sum=0;
for(int i=1;i<=m;i++)
{scanf("%s",word);
nn=0;
query();
if(nn)
{sum++;
sort(ans,ans+nn);
printf("web %d:",i);
for(int i=0;i
hdu2896 AC自動機模板)
ac自動機模板題 下面說幾個注意點 1 題目中說字元是可見字元,可見字元的asc碼是32 127 由於不清楚這一點wa了無數次 2 發現ac自動機網上 都是用指標來寫的,我這裡提供靜態陣列的寫法 如下 include include include include include include i...
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 ...