摘要:
#include #include #include using namespace std;#define SIGMA_SIZE 30#define MAXNODE 300000int ch[MAXNODE][SIGMA_SIZE];int f[MAXNODE]; // fail函数int ... 阅读全文
摘要:
题意:有一排房间每个房间有两扇门,一扇通往第i+1个房间,另一扇通往第p[i]个房间,(p[i]#define mod 1000000007__int64 dp[1010];int p[1010];int n;int main(){ int i; scanf("%d",&n); f... 阅读全文
摘要:
#include#include#includeusing namespace std;const int MM=500100;int next1[MM],extand1[MM];int next2[MM],extand2[MM];int sum[MM];char S[MM],T[MM];int v... 阅读全文
摘要:
#include#include #includeusing namespace std;const int MM=201000;int next[MM],extand[MM],next2[MM];char S[MM],T[MM];void GetNext(const char *T){ i... 阅读全文
摘要:
朴素的想法,对于每个王子,选取一个他喜欢的公主,然后对其他的进行一遍匹配看是否完备,不过时间复杂度太高,仔细想想这一过程,先看题目中给出的初始配对,王子甲本身配对的是公主甲,如果甲还可以选其他的公主比如说公主乙,那么如果王子乙可以选公主甲,那么结束,如果不能,则重复刚才的做法(其实就是匹配寻找增广路... 阅读全文
摘要:
#include#include#includeusing namespace std;#define maxx 20000050char str[2*maxx];char s[maxx];int p[maxx];void Manacher(int *p,char *str,int len){ ... 阅读全文
摘要:
枚举可能的区间,然后从区间内和区间外交换最小和最大的。#include #include #include #include #include using namespace std ;int a[1010] ;int main(){ int n ,k; while(~scanf("%d... 阅读全文
摘要:
#include #include #include #include using namespace std;const int MAXN=40000;const int MAXE=20000000;const int inf=10&&d[u]+edge[j].wb[m]) l=m+1; ... 阅读全文
摘要:
#include #include char a[110000],b[110000];int p[110000];int main(){ int i,j; int y; while(scanf("%s",b+1)!=EOF) { int len=strlen(b... 阅读全文
摘要:
解释摘自网上。题意:求给定字符串含前缀的数量abab前缀为aababaabababab中共有六个子串是前缀a a ab ab aba abab所以答案为6利用kmp中的匹配原理可以完美的解决此题a---------d----- -----a---------d i j如上所示,假... 阅读全文