【无聊放个模板系列】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 ...
随机推荐
- HTML5规范的本地存储
在HTML5 中定义了两种本地存储的,Web Storage 和本地数据库 SQL Database . 用来检查判断浏览器是否支持 Web Storage if(window.localStorag ...
- 自动生存Makefile教程 autoscan aclocal autoconf autoheader automake configure
LZ没学过makefile的写法,只知道使用tab.于是乎发现了autotools系列工具 基本流程是:autoscan.aclocal.autoconf.autoheader.automake.co ...
- 在XP系统下搭建maven环境出的问题 Unable to locate the Javac Compiler in: C:\Program Files\Java\jre6\..\lib\tools.jar
Build errors for spider; org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute g ...
- Oracle之初始创建scott/tiger来测试
在redhat5.5(32bit)上安装好oracle11g数据库软件,然后安装一个数据库,再然后登录数据库,创建scott/tiger测试 首先登录数据库,这里登录时是没有启动数据库的 [oracl ...
- asp.net MVC URL路由入门指南
asp.net MVC 的URL路由是一个非常强大的功能,而且有个优点:强大单不复杂.然而,目前我在网上看到的相关资料,却都仅仅提供一些示例,仅通过这些示例,初学者基本上不可能明白为什么要这么配置,更 ...
- css 盒子模型理解
盒子模型是html+css中最核心的基础知识,理解了这个重要的概念才能更好的排版,进行页面布局.下面是自己积累和总结的关于css盒子模型的知识^_^,希望对初学者有用. 一.css盒子模型概念 CSS ...
- html元素类型 块级元素、内联元素(又叫行内元素)和内联块级元素。
html中的标签元素大体被分为三种不同的类型:块级元素.内联元素(又叫行内元素)和内联块级元素. 块级元素特点: 1.每个块级元素都从新的一行开始,并且其后的元素也另起一行.(霸道,一个块级元素独占一 ...
- SVN: revert all command
If you accidentally marked all your files as "delete" (your file/folder has a red x on it) ...
- Entity Framework 学习笔记(2)
上期回顾:Entity Framework 学习笔记(1) Entity Framework最主要的东西,就是自己创建的.继承于DbContext的类: /// <summary> /// ...
- WebClient以POST方式发送Web请求
本例使用WebClient以POST方式发送Web请求并下载一个文件,难点是postData的构造,发送Web请求时有的网站要求可能要求 Cookies前后一致.其中application/x-www ...