
字符串模板
maze_illusion
这个作者很懒,什么都没留下…
展开
-
后缀数组模板
m=字符类型上限+1,ch[n]=0 int n;char s[maxn];int ch[maxn];int Sa[maxn];int Rank[maxn];int Height[maxn];int t1[maxn],t2[maxn],c[maxn];bool cmp( int *r , int a , int b , int l ){ return r[a]==r...原创 2018-08-23 15:45:12 · 202 阅读 · 0 评论 -
AC自动机模板
struct ACauto{ int next[50010][26],fail[50010],end[50010],root,L; int Newnode() { for ( int i=0 ; i<26 ; i++ ) next[L][i] = -1; end[L++] = -1; retu...原创 2018-08-23 14:50:03 · 182 阅读 · 0 评论 -
字符串HASH模板
单关键字字符串HASH:typedef unsigned long long ull;const ull base = 131;struct My_Hash{ ull p[maxn],hs[maxn]; void Insert( char s[] ) { int len = strlen(s+1); p[0] = 1,hs[0] ...原创 2018-08-23 12:58:15 · 253 阅读 · 0 评论 -
Trie树模板
建立新点:int NewNode(){ for ( int i=0 ; i<26 ; i++ ) tree[tot][i] = 0; return tot++;}插入字符串:void Insert( char *s ){ int len = strlen(s),now = 0; for ( int i=0 ; i<l...原创 2018-07-12 10:11:48 · 151 阅读 · 0 评论 -
Manacher模板
预处理:T[0] = '$';int len = strlen(S);for ( int i=1 ; i<=len ; i++ ){ T[i*2-1] = '#'; T[i*2] = S[i-1];}T[len*2+1] = '#';T[len*2+2] = '\0';模板:int Manacher( char *s , int *p ){ ...原创 2018-07-11 20:46:42 · 150 阅读 · 0 评论 -
KMP模板
void GetKmpNext( char *s , int *nx ){ nx[0] = -1; int len = strlen(s); for ( int i=0,j=-1 ; i<len ; i++ ) { while ( j!=-1&&s[i]!=s[j] ) j = nx[j]; ...原创 2018-07-11 14:50:54 · 135 阅读 · 0 评论 -
扩展KMP模板
void GetNext( char *s , int *Next ){ int c=0,len=strlen(s); Next[0] = len; while( s[c]==s[c+1]&&c+1<len ) c++; Next[1] = c; int po = 1; for ( int i=2 ; i<len ; ...原创 2018-07-11 11:50:15 · 267 阅读 · 0 评论