Description

For each prefix of a given string S with N characters (each character has an

ASCII code between 97 and 126, inclusive), we want to know whether the prefix

is a periodic string. That is, for each i (2 ≤ i ≤ N) we want to know the largest K

> 1 (if there is one) such that the prefix of S with length i can be written as AK ,

that is A concatenated K times, for some string A. Of course, we also want to

know the period K.

Input

The input file consists of several test cases. Each test case consists of two

lines. The first one contains N (2 <= N <= 1 000 000) – the size of the string S.

The second line contains the string S. The input file ends with a line, having the

number zero on it.

Output

For each test case, output “Test case #” and the consecutive test case

number on a single line; then, for each prefix with length i that has a period K >

1, output the prefix size i and the period K separated by a single space; the

prefix sizes must be in increasing order. Print a blank line after each test case.

Sample

Input

3
aaa
12
aabaabaabaab
0

Output

Test case #1
2 2
3 3
Test case #2
2 2
6 2
9 3
12 4

Hint

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char s[1000001];
int next[1000001];
void kmpnext(char s[]){int slen;int k;int i;slen = strlen(s);k = -1;memset(next, 0, sizeof(next));next[0] = -1;for(i = 1; i < slen; i++){while(k > -1 && s[k + 1] != s[i]){k = next[k];}if(s[k + 1] == s[i]){k++;}next[i] = k;}
}
int main(){int n;int ps;int time = 0;while(~scanf("%d", &n) && n){time++;//getchar();scanf("%s", s);kmpnext(s);//for(int i = 0; i < n; i++){//printf("%d\n", next[i]);//}printf("Test case #%d\n", time);for(int i = 1; i <= n; i++){ps = i - next[i - 1] - 1;if(ps != i && i % ps == 0){printf("%d %d\n", i, i / ps);}}//printf("\n");}return 0;
}

K - Period(周期)相关推荐

  1. 自已动手修改同花顺K线周期的快捷键

    同花顺的1分钟,5分钟,15分钟,30分钟,60分钟的K线周期快捷键为M1,M5,M15,M3,M6,不像大智慧为1,2,3,4...操作很是方便,让我们来把它给改一改. 1.下载Restorator ...

  2. R语言计算时间序列数据的移动平均值(滚动平均值、例如5日均线、10日均线等):使用zoo包中的rollmean函数计算k个周期移动平均值

    R语言计算时间序列数据的移动平均值(滚动平均值.例如5日均线.10日均线等):使用zoo包中的rollmean函数计算k个周期移动平均值 目录

  3. 用python把股票日K线转换成月K线周期数据,这可能是网上最稀缺的代码

    用python把股票日线转换成月K线周期,这可能是网上最稀缺的代码. 在网上找了半天,真的非常稀缺,把日K线转换成月线周期. 东拼西凑,再加上自己的修改,终于写出来了. 先爬取K线数据保存为temp. ...

  4. axure中备注线_1分钟K线、日K线、月K线……不同周期的K线图到底有啥用?

    本文由小冉老师微信(xiaoran376418732)整理,个人观点,仅供参考,不构成操作建议.如自行操作,注意仓位控制和风险自负. 有人说炒股是一门玄学,有人说炒股是一门艺术. 有时炒股是一件门槛很 ...

  5. 【教学】MT4实现任意分钟变周期 灵活K线

    3分钟学会,MT4实现任意分钟变周期 灵活K线 方法 几点注意 不需要编译脚本,只要会用记事本.3分钟就可以做出来任意分钟周期的K线,并实时显示.本文做一个简单的教学,使用FinalTrader MT ...

  6. Ctp接口 Tick数据转换成3秒钟,5秒钟,15秒钟,1分钟,3分钟,5分钟,n分钟周期的K线数据

    Ctp接口 Tick数据转换成3秒钟,5秒钟,15秒钟,1分钟,3分钟,5分钟,n分钟周期的K线数据 图片为5秒钟 合成效果 完整源码 """ 关注公众号: Ctp接口量 ...

  7. HQChart使用教程60-新版k线训练使用教程

    HQChart使用教程60-新版k线训练使用教程 样例页面 K线训练重构 创建K线图 Type Train 操作接口 下一个K线 自动/停止自动移动K线 买卖股票 K线移动监听事件 重新开始训练 买卖 ...

  8. HQChart使用教程30-K线图如何对接第3方数据31-获取指定品种的K线数据

    HQChart使用教程30-K线图如何对接第3方数据31-获取指定品种的K线数据 获取指定品种的K线数据 通达信语法$ hqchart内置函数 脚本例子 协议名称-指定个股数据 协议日志截图 字段说明 ...

  9. HQChart使用教程37 - 如何在uni-app创建k线图(app)

    HQChart使用教程37 - 如何在uni-app创建k线图 app 插件目录 创建步骤 1. 拷贝插件到工程中 2. 创建一个page页 在page页中 3.运行到模拟器 通过uniapp下载hq ...

最新文章

  1. 冬季生存法则,不得不看!
  2. 倒下的RoadStar结局来了:VC清盘止损,三位创业者承担1亿债务,打着官司各投林...
  3. Leetcode 133. 克隆图 解题思路及C++实现
  4. 自定义的 ListBoxItem 自适应ListBox的宽度
  5. 花5分钟过一遍jar包和war包的区别,以后都不会再迷茫
  6. CodeForces:749(div1)750(div2)
  7. oracle 视图去重复,CSS_Oracle几种查找和删除重复记录的方法总结,平时工作中可能会遇到当试图 - phpStudy...
  8. executorservice 重启_iPhone7使用久了突然手机自动重启,多半原因出在这儿,进来看看...
  9. 带图破解无源晶振与有源晶振知识
  10. 嵌入式笔试题目及解析
  11. php微信定位功能,JavaScript微信定位功能实现方法
  12. Mac下编程的实用快捷键
  13. 雷军亲自站台,游戏手机能否成为市场增长新引擎?
  14. 三国无双之雄霸天下java下载,三国之雄霸天下
  15. 利用curl进行ftp的下载和上传
  16. MoR03r's Blog
  17. JSOI2007 建筑抢修
  18. phpMyAdmin 尝试连接到 MySQL 服务器,但服务器拒绝连接。
  19. 我与小娜(01):回到过去,探索未知
  20. 串口一拖二——硬件实现、软件使用

热门文章

  1. 财务会计基础(二)复式记账法
  2. 2021第七届美亚杯中国电子数据取证大赛详解write up
  3. 港科夜闻|香港科大新研究显示人体T细胞免疫反应可有效应对新冠病毒变异株Omicron...
  4. 光与影的地平线:手机AI摄影全析
  5. 数据监测,都可以监测哪些平台
  6. Linux-Samba文件共享服务
  7. python生成渐变颜色数组
  8. ibox (bootstrap)
  9. matlab下载保姆级安装教程,哪个版本比较好些?
  10. 【Java-数据类型】