【无聊放个模板系列】POJ2752 EXKMP
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#include<cmath>
using namespace std;
#define Maxn 400010 char s[Maxn];
int l,nt[Maxn]; int mymin(int x,int y) {return x<y?x:y;} void exkmp()
{
int mx=,id=;
nt[]=l;
for(int i=;i<=l;i++)
{
int k;
if(i<mx) k=mymin(nt[i-id+],mx-i+);
else k=;
while(s[k+]==s[i+k]&&i+k<=l) k++;
nt[i]=k;
if(i+nt[i]->mx) mx=i+nt[i]-,id=i;
}
} int main()
{
while(scanf("%s",s+)!=EOF)
{
l=strlen(s+);
exkmp();
// for(int i=1;i<=l;i++) printf("%d ",nt[i]);printf("\n");
for(int i=l;i>=;i--)
{
if(nt[i]==l-i+) printf("%d ",l-i+);
}
printf("\n");
}
return ;
}
exkmp
2016-11-17 19:31:47
再来:
POJ 3461
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#include<cmath>
using namespace std;
#define Maxn 10010
#define Maxm 1000010 char s[Maxn],ss[Maxm];
int l1,l2; int nt[Maxn],td[Maxm]; int mymin(int x,int y) {return x<y?x:y;} void exkmp()
{
int mx=,id=;
for(int i=;i<=l1;i++)
{
int k;
if(i<mx) k=mymin(nt[i-id+],mx-i+);
else k=;
while(s[+k]==s[i+k]&&i+k<=l1) k++;
nt[i]=k;
if(nt[i]+i->mx) mx=nt[i]+i-,id=i;
}
// for(int i=2;i<=l1;i++) printf("%d ",nt[i]);
// printf("\n"); mx=,id=;
for(int i=;i<=l2;i++)
{
int k;
if(i<mx) k=mymin(nt[i-id+],mx-i+);
else k=;
while(s[+k]==ss[i+k]&&i+k<=l2&&+k<=l1) k++;
td[i]=k;
if(i+td[i]->mx) mx=td[i]+i-,id=i;
}
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%s%s",s+,ss+);
l1=strlen(s+);
l2=strlen(ss+);
exkmp();
int ans=;
for(int i=;i<=l2;i++) if(td[i]==l1) ans++;
printf("%d\n",ans);
}
return ;
}
【无聊放个模板系列】POJ2752 EXKMP的更多相关文章
- 【无聊放个模板系列】BZOJ 3172 (AC自动机)
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
- 【无聊放个模板系列】HDU 3506 (四边形不等式优化DP-经典石子合并问题[环形])
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
- 【无聊放个模板系列】BZOJ 1597 斜率优化
STL 双向队列DEQUE版本 #include<cstdio> #include<cstdlib> #include<cstring> #include<i ...
- 【无聊放个模板系列】POJ 3678 2-SAT
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
- 【无聊放个模板系列】POJ 1274 (匈牙利)
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
- 【无聊放个模板系列】HDU 1269 (SCC)
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
- 【无聊放个模板系列】HDU 1358 KMP
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
- 【无聊放个模板系列】HDU 3068 MANACHER
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
- python 回溯法 子集树模板 系列 —— 14、最长公共子序列(LCS)
问题 输入 第1行:字符串A 第2行:字符串B (A,B的长度 <= 1000) 输出 输出最长的子序列,如果有多个,随意输出1个. 输入示例 belong cnblogs 输出示例 blog ...
随机推荐
- php的传值和传址
有些情况下,可能希望在函数体内对参数的修改在函数体外也能反映; 使用引用传递参数要在参数前加上&符号; 例子: <?php $a=5; function show(&$a){ ...
- jQuery 黑白插件
1 add jQuery and plug in to the page <script src="js/jquery.min.js"></script> ...
- Android线控的使用
实现方式一:只能在程序为前台时监控 在Activity中即可监听 @Override public boolean onKeyUp(int keyCode, KeyEvent event) { Log ...
- Spring 3.x 实践 第一个例子(Spring 3.x 企业应用开发实战读书笔记第二章)
前言:工作之后一直在搞android,现在需要更多和后台的人员交涉,技术栈不一样,难免鸡同鸭讲,所以稍稍学习下. 这个例子取自于<Spring 3.x 企业应用开发实战>一书中的第二章,I ...
- 如何防止SWF文件被反编译
这篇文章的标题所提出的问题的答案是“不可能”.至少对我来说是不可能的.借助适当的工具,我们可以反编译任何SWF文件.所以,不要将重要的信息置于SWF文件中.SWF文件中不要包含个人的帐号或者密码. 我 ...
- 牛客_剑指offer_重建二叉树,再后续遍历_递归思想_分两端
总结: 重建二叉树:其实就是根据前序和中序重建得到二叉树,得到后续,只要输出那边设置输出顺序即可 [编程题]重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的 ...
- 鼠标点击input时,placeholder中的提示信息消失
html代码: <input type="text" placeholder="多个关键词空格隔开"> 鼠标点击input时,placeholder ...
- Java线程练习
/*线程练习创建两个线程,与主线程交替运行 */ class Text extends Thread{ private String name; Text(String name) ...
- fgetc, getchar(), fscanf的问题
1.漫谈:为什么 函数fscanf(FILE stream, const char format, ...)的 第3个参数中 总是用变量的地址 或者是用指针. 这个问题涉及到 传值 和 传指针.一般情 ...
- leetcode Permutations II 无重全排列
作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4051169.html 题目链接:leetcode Permutations II 无重全排 ...