
字符串模板
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 · 216 阅读 · 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 · 187 阅读 · 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 · 265 阅读 · 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 · 160 阅读 · 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 · 155 阅读 · 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 · 138 阅读 · 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 · 280 阅读 · 0 评论