Period_poj1961_kmp

[poj 1961]Period[kmp] Period Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 16202   Accepted: 7764 Description For each prefix of a given string S with N characters (each charact 阅读详情

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 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.

Translation


对于给定长度为n的字符串s,求所有从第1位开始的字符串循环节,输出位置和循环节数量

Analysis


之前做过类似的题,这次换成枚举第i位就可以
论熟练掌握kmp中next数组的用法的重要性

Code


var
  s:ansistring;
  p:array[0..1000000]of longint;
  n,i,ans,count:longint;
procedure init(s:ansistring);
var
  i,j:longint;
begin
  p[1]:=0;
  j:=0;
  for i:=2 to length(s) do
  begin
    while (s[j+1]<>s[i])and(j>0) do j:=p[j];
    if (s[j+1]=s[i]) then
      inc(j);
    p[i]:=j;
  end;
end;
begin
  readln(n);
  while n>0 do
  begin
    readln(s);
    init(s);
    inc(count);
    writeln('Test case #',count);
    for i:=1 to length(s) do
    begin
      ans:=i div(i-p[i]);
      if (ans>1)and(i mod (i-p[i])=0) then
      writeln(i,' ',ans);
    end;
    writeln;
    readln(n);
  end;
end.
YOLOv8改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合 可扩展的高效物体检测BiFPN(加权双向特征金字塔网络) 阅读详情

相关推荐

【RK3399】Android平台增加一款声卡设备(ES7210+ES8156),进行录音/播放测试。

文章目录前言一、开发环境二、概述三、硬件介绍1、ES72102、ES81563、数字麦克风阵列4、音频示意图四、下载SDK五、编译、烧写1、u-boot2、kernel3、Android SDK4、烧写分区5、烧写固件六、声卡驱动1、添加codec代码2、修改Kconfig3、修改Makefile4、修改rockchip_defconfig5、修改DTS七、声卡调试1、查看声卡注册信息2、使用tinycap/tinyplay录音和放音3、使用示波器观测八、修改HAL层1、修改默认capture/playba

rentong123的博客 2万+

【POJ 1961】Period(KMP求循环节)

【POJ 1961】Period(KMP求循环节) Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 15466   Accepted: 7417 Description For each prefix of a given string S with N cha

ACMer' 1083

【芯片驱动】2. CMT2300A配合硬件测试(灵敏度和发射功率)的软件实现

前言 在开发一款无线射频产品的时候,软件是一部分,硬件也是一部分。而决定无线收发性能的,首先是硬件的匹配电路,然后才到软件部分的优化。 一款无线射频产品,首先需要先决定是在那个频率范围内(当然是国家允许的范围内),然后硬件则需要在基于这个频点范围进行硬件的参数匹配,具体又分为发送功率匹配、天线匹配、和接收灵敏度的匹配。 现在我们使用2300a这款无线芯片来说,除非自己的团队是射频专家,则可以自己进行无线外围电路的设计外,另外一种更加快捷的方式,就是寻找原厂技术支持,他们会给...

sishuihuahua的博客 7055

KMP POJ1961 Period

POJ1961 Period 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=10934 题意:给一个字符串,起点固定,终点从前往后遍历,输出存在以“某一前缀为周期串的原始串”的结点位置和根据前缀得到的周期。 思路:递推的思想,具体用KMP实现,照着大白书打的。注意个人使用的KMP是next表示长度,而遍历字符

beihai2013 421

《物联网技术》课程笔记——第二章 物联网技术架构

文章目录第二章:物联网技术架构1 物联网技术体系(C3SD)2 系统体系结构的基本概念3 物联网体系结构——信息传递视角3.1物联网感知层3.1.1 感知层要解决的问题3.1.2 感知层的形态3.1.3 节点的感知能力与控制能力3.1.4 感知层实例3.2 物联网网络层3.2.1 网络相关概念3.2.2 IPV6与IPV4相比互联网协议的升级3.2.3 计算机网络的逻辑层次3.2.4 传输网的拓扑结构3.2.4.1 举例:智能小区的三表采集系统3.2.4.2 接入层3.2.4.2 汇聚层3.2.4.2 核心

南京大学软件工程硕士在读 2503

Linux下搭建J-Link调试环境:OpenOCD+GDB实战指南

嵌入式开发中,调试器是连接开发主机与目标硬件的关键桥梁,其核心原理是通过标准协议(如JTAG/SWD)访问芯片内部的调试模块。GDB作为通用的调试客户端,通过远程协议与调试服务器通信,而OpenOCD则扮演了协议转换与硬件驱动的角色,实现了调试命令的翻译与执行。这种开源工具链的组合,为开发者提供了高度的定制化与自动化能力,尤其适合需要与持续集成流程深度结合的复杂项目。在实际应用中,针对特定芯片(如ARM7TDMI)进行正确的内存控制器与时钟初始化是成功调试的前提,这常常涉及对板级支持包的深入理解。本文以S3

weixin_29889665的博客 333

poj 1961 Period(未优化KMP的next数组)

poj 1961 Period(未优化KMP的next数组)

PKU_ZZY的博客 774

深入解析Cuk、Zeta和Sepic拓扑:非隔离型开关电源的设计奥秘

本文深入解析了Cuk、Zeta和Sepic三种非隔离型开关电源拓扑的设计奥秘。它们均能实现升降压转换,但特性各异:Cuk拓扑输出反向电压,输入输出纹波极低;Sepic拓扑输出同极性电压,应用广泛;Zeta拓扑输出纹波小,适合精密供电。文章详细对比了其电路结构、工作原理、核心公式及选型指南,帮助工程师根据输入电压范围、输出极性及纹波要求,灵活选择最合适的拓扑方案。

weixin_28308325的博客 478

POJ-1961(Period)(kmp())

POJ-1961(Period)(kmp()) 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

hpulw 1050

Open3D 点云重叠区域检测【2025最新版】

本文介绍了一种基于八叉树和KD树的点云重叠区域检测方法。算法提供两种检测模式:八叉树(快速)和KD树(精确),支持可视化显示和详细统计信息输出。实现功能包括边界扩展、索引去重、精度调节等,可通过max_depth参数控制八叉树细分程度,distance_threshold调整检测精度。代码使用Open3D库,能自动计算并显示各点云的重叠比例和点数统计,最终结果以不同颜色区分重叠与非重叠区域。该方案适用于三维点云数据处理中的重叠分析任务。

点云侠的博客 599

STM32 MCU解除读保护的方法及STM32CubeProgrammer的应用

下面是一个简单的源代码示例,演示如何在STM32CubeProgrammer中使用命令行界面(Command-Line Interface,CLI)来解除STM32 MCU的读保护。通过按照这些步骤操作,您可以成功解除STM32 MCU的读保护,并在需要的时候进行调试、烧录或修改固件。模块调用了STM32CubeProgrammer的命令行界面(CLI),并传递了相应的参数来解除STM32 MCU的读保护。请注意,在进行任何与读保护相关的操作之前,请确保您拥有合法的授权和权利,以避免潜在的安全风险。

ZwcCsharp的博客 3549

poj 1961 Period (kmp next 数组的应用)

http://poj.org/problem?id=1961 Period Time Limit:3000MS Memory Limit:30000K Total Submissions:10855 Accepted:4995 Description For each prefix of a given strin...

diansitao5461的博客 145

YOLOv11改进 | 主干/Backbone篇 | 轻量级移动端网络ShuffleNetV2(附代码+修改教程)

本文给大家带来的改进内容是ShuffleNetV2,这是一种为移动设备设计的高效CNN架构。其在ShuffleNetV1的基础上强调除了FLOPs之外,还应考虑速度、内存访问成本和平台特性。(我在YOLOv11n上修改该主干降低了GFLOPs,但是参数量还是有一定上涨,其非常适合轻量化的读者来使用,同时精度也有一定程度的上涨)。本文通过介绍其主要框架原理,然后教你如何添加该网络结构到网络模型中。

Snu77的博客 3387

POJ1961 Period KMP

题目链接 http://poj.org/problem?id=1961 分析 KMP算法中定义了 fail[i]fail[i]fail[i] 数组来记录对于每个 iii,满足 j&lt;ij &lt; ij<i 且 s[1...j]=s[i−j+1,i]s[1 ... j] = s[i - j + 1, i]s[1...j]=s[i−j+1,i] 的最大的 jjj。 前缀 i...

Kevin的博客 304

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

poj 1961 Period(KMP)

题目链接:http://poj.org/problem?id=1961 #include #include char S[1000010]; int next[1000010]; int main() { int n,time = 1; int i,j,length; while(scanf("%d",&n) && n) { i = 0;

梦幻的蔷薇色 339

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

POJ 1961-Period:KMP

点击打开链接 Period Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 11163   Accepted: 5162 Description For each prefix of a given string S with N characters

云淡风清 749

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

KMP POJ 1961 Period

题目传送门 1 /* 2 题意:求一个串重复出现(>1)的位置 3 KMP:这简直和POJ_2406没啥区别 4 */ 5 /************************************************ 6 * Author :Running_Time 7 * Created Time :20...

weixin_30508309的博客 73

kmp杂题2 poj1961Period

poj1961 Period 题意: 给一个字符串,如果在前 i 位置处满足连续循环A^K(A:单位循环段,K:循环个数),则输出i和K(仅输出K>1的情况,按i的递增顺序)是不是和上一题(poj2406) 有点像? (不懂得童鞋可以看一看…顺便刷刷访问量哈哈) 像上一题那样把自己匹配一遍然后再lenb过一次就可以惹 是不是很简单?

kkkGIGi_qtt 266

poj1961 Period(KMP)

C - Period Crawling in process... Crawling failed Time Limit:3000MS     Memory Limit:30000KB     64bit IO Format:%I64d & %I64u Submit Status Practice POJ 1961 Appoint description:

苏苏爱自由 5378

poj 1961 Period(KMP)

http://poj.org/problem?id=1961 题意: 这道题的题意真是晦涩。。。 给你一个字符串,求这个字符串到第i个字符为止的循环节的次数。 比如aabaabaabaab,长度为12.到第二个a时,a出现2次,输出2.到第二个b时,aab出现了2次,输出2.到第三个b时,aab出现3次,输出3.到第四个b时,aab出现4次,输出4. #inc

1127

POJ 1961 Period(KMP)

题目链接:http://poj.org/problem?id=1961 题意:给定长度为n的字符串S,求其前i位重复的次数K。 思路:求出next[]数组(字符串下标从0开始)。然后从2开始枚举到len,如果X%(X-next[X])==0且X/(X-next[X])&gt;1,则前X个满足题意,循环次数为X/(X-next[X])。 证明:有一点很明显,如果X能整除X-next[X],那么...

weixin_34234829的博客 164

【KMP】 poj1961 Period

Period http://poj.org/problem?id=1961 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 whe

Ted's 游乐园 635

【POJ 1961】Period【KMP】

题目大意: 题目链接:http://poj.org/problem?id=1961 求一个字符串的所有前缀是否为一个串重复得到而成。如果是,输出这个前缀的位置和那个串的长度。 思路: 我们知道KMP的nextnextnext数组可以求出一个子串的前缀和后缀的最长相同部分,由于是最大的前缀=后缀,那么将iii(子串长度)减去next[i]next[i]next[i],就又得到了一个前缀=...

stoorz 190

POJ1961 Period (kmp) 题解

Period Time Limit:3000MS Memory Limit:30000K Total Submissions:16462 Accepted:7903 Description For each prefix of a given string S with N characters (each char...

176

|poj 1961|KMP|Period

poj传送门/* poj 1961 教训: 1、kmp求循环节是n-f[n] */ #include<cstdio> #include<cstring> #include<algorithm> #include<vector> using namespace std; #define ms(i,j) memset(i, j, sizeof i);const int MAXN

博客停更,请到"再见,优快云"文章中找新博客地址 689
上一篇: 对布满灰尘的西洋棋宣告将军_纪中2047_dp
下一篇: 密码盘_纪中3067_dp
olahiuj
博客等级 码龄12年 97粉丝 1182原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值