那什麼可見字元是坑爹的吧……
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;
#pragma pack(4)
const double eps = 1e-8;
const double pi = acos(-1.0);
const int inf = 0x7f7f7f7f;
const __int64 inf = 0x7f7f7f7f7f7f7f7fll;
#define loop(a,n) \
for(int i=0;n>i;i++) \
coutfor(int j=0;m>j;j++) \
cout#define less(a,b) (((b)-(a))>eps)
#define greq(a,b) (((a)-(b))>-eps)
#define leeq(a,b) (((b)-(a))>-eps)
#define equl(a,b) (fabs((a)-(b))(b)?(a):(b))
#define lmin(a,b) ((a)<(b)?(a):(b))
#define fmax(a,b) (gret(a,b)?(a):(b))
#define fmin(a,b) (less(a,b)?(a):(b))
const int maxv = 100002;
struct node
trie[maxv];
bool vis[maxv];
int _index,q[maxv];
void clear(void)
int malloc(void)
return _index++;
}int fail(int root,int c)
return root;
}void insert(int root,char p,int v)
trie[root].cnt=v;
}void build(int root)}}
}}bool hash[maxv];
int query(int root,char t)
}else break;}}
}return cnt;
}int n,m;
char a[maxv],b[maxv];
int main()
build(root);
scanf("%d\n",&m);
int tot=0,ans;
for(int i=1;m>=i;i++)
printf("\n");
tot++;}}
printf("total: %d\n",tot);
}return 0;
}
hdu2896 病毒侵襲
剛剛看完ac自動兩天就發現了這道自動機的題目,這題不是很難,但是有幾個細節需要注意一下,首先 中的病毒型別不能重複,也就是說沒有可能出現兩個同樣的病毒,我的處理方法是利用set這樣的話判重和排序都省了,其次輸出的 編號和最終的病毒 數不是一樣的 我就是卡在這裡一直wa 爆棧的童鞋記得size是128...
hdu 2896 病毒侵襲
本題需要注意幾個方面 1 字元的範圍是可見的ascll碼字元,陣列要開到127。2 雖然題目的資料弱了,但是自己要考慮的周全。資料一 2 sherhe2 shesher答案 web 1 2 web 2 1 2 total 2資料二 2aaa 1aaaa答案 web 1 1 2 total 1 inc...
Hdu 2896 病毒侵襲
題意 給出n個模式串,再給出m個字串,問這些字串包含那些模式串 思路 ac自動機,先以模式串構建字典樹,再以字典樹構建fail標記,fail標記類似於kmp的next字首陣列,可以跳轉到重複字首的結尾,查詢的時候利用fail標記就可以提高多模式串匹配的效率 include include inclu...