XIOI 字符串的周期

题目描述
给出一个长度为N的由ASc码从97到126之间的字符组成的字符串S,我们想知道S的前缀中哪些是周期性的(周期至少为2)。也就是说对任一i(2≤i≤N),S的前i个字符是否可以表示为AK,AK 表示字符串A重复K次形成的字符串,如aab2=aabaab,如果S的前i个字符可以表示成AK,求出最大的K。

输入

输入文件第一行包含一个整数N,2<=N<=1,000,000,表示字符串S的长度,输入文件的第二行给出字符串S。

输出

输出文件包含若干行,每行输出两个严格用一个空格隔开的整数i和k,表示字符串S的前i个字符的最大周期为k,所有输出行按i从小到大输出。

样例

样例输入:

12

aabaabaabaab

样例输出

2 2

6 2

9 3

12 4

KMP裸题。。。(然而我不会打KMP ) 所以我只打了个暴力拿到42分滚粗。。开个数组记录暴力匹配据说能水道85.。原因是对于每个字符串字串一定是能匹配的因为整个串都满足条件存在若干字串。所以我们只需要记录最小字串,匹配到后直接中间输出匹配长度除以最小字串长度就好了233

#include<algorithm>
#include<iostream>
#include<cstring>
#incl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值