【无聊放个模板系列】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 ...
随机推荐
- XML前言
一.前言 1.XML全称"eXtensible Markup Language"(可扩展的标记语言) 2.DTD全称"Document Type Defintion&qu ...
- 史上最全的phpstorm常用配置
取消自动保存并标识修改的文件为星星标记 1.取消自动保存 进入 File -> Settings -> General,取消下面两选项的勾选: 2.星星标记 进入 File -> S ...
- JAXB - Annotations, Annotations for Enums: XmlEnum, XmlEnumValue
An enum type is annotated with XmlEnum. It has an optional element value of type java.lang.Class whi ...
- linux下设置mysql数据库字符集utf8
mysql中文乱码解决方法:将mysql数据库编码统一utf8 查看数据库编码: show variables like 'character%'; 编辑/etc/my.cnf [mysql] def ...
- ArrayList、Vector、LinkedList的区别及其优缺点? (转载)
原文链接:http://blog.csdn.net/wangzff/article/details/7296648 ArrayList,LinkedList,Vestor这三个类都实现了java.ut ...
- 【转】JavaScript系列文章:自动类型转换
我们都知道,JavaScript是类型松散型语言,在声明一个变量时,我们是无法明确声明其类型的,变量的类型是根据其实际值来决定的,而且在运行期间,我们可以随时改变这个变量的值和类型,另外,变量在运行期 ...
- ###学习《C++ Primer》- 5
点击查看Evernote原文. // @author: gr // @date: 2014-10-20 // @email: forgerui@gmail.com Part 5: 动态内存(第12章) ...
- IOS上iframe的滚动条失效的解决办法
#iframe-wrap { position: fixed; top: 100px; bottom: 0px; left: 0px; right: 0px; -webkit-overflow-scr ...
- (LightOJ 1149) Factors and Multiples
题目链接:http://lightoj.com/volume_showproblem.php?problem=1149 Description You will be given two sets o ...
- [cocos2d-x 2.0.4][iOS7]不能全屏问题
本篇文章由:http://www.sollyu.com/cocos2d-x-2-0-4-ios7-cannot-be-full-screen-problem/ 说明 ▼ 症状如下图 解决 打开你工程的 ...