字符串模版
Anoyer
这个作者很懒,什么都没留下…
展开
-
AC自动机模板
#include<stdio.h>#include<bits/stdc++.h>#define ll long long int#define max_n 1000050#define max_tot 500050#define met(a) memset(a,0,sizeof(a))#define fup(i,a,n,b) for(int i=a;i<n...原创 2018-09-17 20:18:14 · 1141 阅读 · 0 评论 -
最小表示法与最大表示法(O(n))
最小表示法伪代码:最小表示法的算法思路是维护两个指针i,j。令i=0,j=1如果S[i] > S[j] i=j, j=i+1如果S[i] < S[j] j++如果S[i]==S[j] 设指针k,分别从i和j位置向下比较,直到S[i] != S[j]如果S[i+k] > S[j+k] i=i+k否则j++返回i和j的小者模版:#include<stdio....原创 2018-11-17 16:53:01 · 1143 阅读 · 0 评论 -
后缀自动机模板
#include&lt;stdio.h&gt;#include&lt;bits/stdc++.h&gt;#define maxc 28using namespace std;const int maxn = 1e6 + 5;const int mod = 1e9 + 7;typedef long long ll;int len[maxn * 2], //最长子串的长度(该节点字串数量...原创 2018-10-03 16:54:31 · 3019 阅读 · 0 评论 -
后缀数组DA模板
/* Problem: JZOJ1598(询问一个字符串中有多少至少出现两次的子串) Content: SA's Code and Explanation Author : Anoyer*/#include &amp;amp;lt;cstdio&amp;amp;gt;#include &amp;amp;lt;cstring&amp;amp;gt;#include &amp;amp原创 2018-09-18 22:52:31 · 939 阅读 · 0 评论 -
最短公共祖先模板
HDU1841–题意是给出两个串,用这两个串组成一个新串,使新串包含这两个串,问这个新串的长度最小是多少,显然,对于两个串A,B,A如果是B的字串或者B如果是A的字串的话,直接输出那个母串的长度即可,如果没有这种关系,那么看一个串的后缀是否是另一个串的前缀如果某个串的后缀与另一个串的前缀的公共部分最长,则答案=A.length+B.length-公共长度。#include&lt;stdio...原创 2018-09-17 20:34:09 · 1465 阅读 · 0 评论 -
扩展KMP模板
#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;const int maxn=100010;//字符串长度最大值 int next[maxn],ex[maxn];//ex数组即为extend数组char s[maxn],s2[maxn];int n;//预处理计算next数组void getnext(){ int i=0,j,po,...原创 2018-09-17 20:26:53 · 639 阅读 · 0 评论 -
Manacher回文串算法(马拉车)模板
求一个串中最长回文串的长度#include&lt;stdio.h&gt; #include&lt;iostream&gt; #include&lt;string.h&gt;#include&lt;algorithm&gt; using namespace std;char s[111111];char s_new[111111*2];int p[原创 2018-09-17 20:26:08 · 538 阅读 · 0 评论 -
字符串编辑距离模板
编辑距离,⼜又称Levenshtein距离(也叫做Edit Distance),是指两个字串串之间,由⼀一个转成 另⼀一个所需的少编辑操作次数。许可的编辑操作包括将⼀一个字符替换成另⼀一个字符,插⼊入⼀一个字 符,删除⼀一个字符#include<bits/stdc++.h>using namespace std;const int N = 1e3 + 5; int T, cas...原创 2018-09-17 20:24:14 · 2100 阅读 · 0 评论 -
Sunday算法模板
#include&lt;stdio.h&gt;#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;string&gt;#include&lt;cstring&gt;using namespace std;string s,p;int next_[257]原创 2018-09-17 20:23:09 · 636 阅读 · 0 评论 -
KMP模板及优化
KMP模板#include&lt;bits/stdc++.h&gt;using namespace std;const int maxn=10001;int next[maxn];char s[maxn];char p[maxn];int cnt=0;void prefix_next(int n){ next[0]=0; int len=0; int i=1; while(...原创 2018-09-17 20:22:27 · 2036 阅读 · 0 评论 -
Karp-Rabin算法模板
#include&lt;stdio.h&gt;#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;string&gt;#include&lt;cstring&gt;#define d 256 //字符表中字符数目 using namespace std;原创 2018-09-17 20:20:32 · 1270 阅读 · 0 评论 -
字符串Hash模板
#include&lt;stdio.h&gt;#include&lt;bits/stdc++.h&gt;#define ll long long intusing namespace std;ll gethash(char *s,int m){ ll h=0; for(int i=0;s[i];i++) h=((h&lt;&lt;8)+s[i])%m; return h;}原创 2018-09-17 20:19:34 · 562 阅读 · 0 评论 -
后缀自动机DC3模板
后缀数组一些性质suffix(j)和suffix(k)的最长公共前缀为height【rank【j】+1】到height【rank【k】】中的最小值;待更新/*POJ-2406*/#include&lt;stdio.h&gt;#include&lt;string.h&gt;#include&lt;map&gt;#include&lt原创 2018-12-06 23:22:47 · 396 阅读 · 0 评论