本題需要注意幾個方面:
1、字元的範圍是可見的ascll碼字元,陣列要開到127。
2、雖然題目的資料弱了,但是自己要考慮的周全。
資料一:
2答案:sherhe2
shesher
web 1: 2資料二:web 2: 1 2
total: 2
2aaa答案:1aaaa
web 1: 1 2total: 1
#include"cstdlib"
#include"cstdio"
#include"cstring"
#include"cmath"
#include"queue"
#include"algorithm"
#include"iostream"
using namespace std;
struct trie
};trie *root;
void init(char *v,int id)
p->mark=id;
}void getac()
tep=tep->fail;
}if(tep==null) p->next[i]->fail=root;
}q.push(p->next[i]);}}
}}int finde(char *v,int *ans)
}return k;
}void del(trie *p)
int main()
getac();
scanf("%d",&m);
getchar();
int cont=0;
for(i=1; i<=m; i++)
{char x[10005];
int ans[10];
memset(ans,0,sizeof(ans));
gets(x);
int k=finde(x,ans);
if(k)
{printf("web %d:",i);
sort(ans,ans+k);
for(j=0; j
hdu2896 病毒侵襲
剛剛看完ac自動兩天就發現了這道自動機的題目,這題不是很難,但是有幾個細節需要注意一下,首先 中的病毒型別不能重複,也就是說沒有可能出現兩個同樣的病毒,我的處理方法是利用set這樣的話判重和排序都省了,其次輸出的 編號和最終的病毒 數不是一樣的 我就是卡在這裡一直wa 爆棧的童鞋記得size是128...
HDU 2896 病毒侵襲
那什麼可見字元是坑爹的吧 include include include include include include include include include include include include include include include include include i...
Hdu 2896 病毒侵襲
題意 給出n個模式串,再給出m個字串,問這些字串包含那些模式串 思路 ac自動機,先以模式串構建字典樹,再以字典樹構建fail標記,fail標記類似於kmp的next字首陣列,可以跳轉到重複字首的結尾,查詢的時候利用fail標記就可以提高多模式串匹配的效率 include include inclu...