博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 432 D. Prefixes and Suffixes
阅读量:5139 次
发布时间:2019-06-13

本文共 1741 字,大约阅读时间需要 5 分钟。

用扩展KMP做简单省力.....

D. Prefixes and Suffixes
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

You have a string s = s1s2...s|s|, where |s| is the length of string s, and si its i-th character.

Let's introduce several definitions:

  • A substring s[i..j] (1 ≤ i ≤ j ≤ |s|) of string s is string sisi + 1...sj.
  • The prefix of string s of length l (1 ≤ l ≤ |s|) is string s[1..l].
  • The suffix of string s of length l (1 ≤ l ≤ |s|) is string s[|s| - l + 1..|s|].

Your task is, for any prefix of string s which matches a suffix of string s, print the number of times it occurs in string s as a substring.

Input

The single line contains a sequence of characters s1s2...s|s| (1 ≤ |s| ≤ 105) — string s. The string only consists of uppercase English letters.

Output

In the first line, print integer k (0 ≤ k ≤ |s|) — the number of prefixes that match a suffix of string s. Next print k lines, in each line print two integers li ci. Numbers li ci mean that the prefix of the length li matches the suffix of length li and occurs in string s as a substringci times. Print pairs li ci in the order of increasing li.

Sample test(s)
input
ABACABA
output
31 43 27 1
input
AAA
output
31 32 23 1

#include 
#include
#include
#include
using namespace std;const int maxn=100100;char T[maxn],P[maxn];int next[maxn],ex[maxn];void pre_exkmp(char P[]){ int m=strlen(P); next[0]=m; int j=0,k=1; while(j+1
>P; pre_exkmp(P); int n=strlen(P); for(int i=0;i
=0;i--) { sum[lisan[i]]=sum[lisan[i+1]]+pos[lisan[i]]; } for(int i=0;i

转载于:https://www.cnblogs.com/mfrbuaa/p/3984715.html

你可能感兴趣的文章
ubuntu查看系统桌面的环境
查看>>
Quartz定时器
查看>>
COMP3055 Machine Learning Coursework
查看>>
字符串截取的函数自定义
查看>>
IntelliJ IDEA maven 构建简单springmvc项目
查看>>
Mysql临时文件目录控制
查看>>
python BeautifulSoup html解析
查看>>
关于为什么不推荐使用用户定义表类型的说明
查看>>
http 方法
查看>>
值类型和引用类型,栈和堆的含义
查看>>
parted分区
查看>>
抛出错误
查看>>
Can't play local SWF file in Media Player
查看>>
图片标签img
查看>>
JavaScript语言中文参考手册.chm
查看>>
表哥的Access入门++以Excel视角快速学习数据库知识pdf
查看>>
day29 jq
查看>>
TC 配置插件
查看>>
关于异步reset
查看>>
第十三周进度表
查看>>