【POJ 1961】Period【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 阅读详情

题目大意:

题目链接:http://poj.org/problem?id=1961
求一个字符串的所有前缀是否为一个串重复得到而成。如果是,输出这个前缀的位置和那个串的长度。


思路:

我们知道KMP的 n e x t next next数组可以求出一个子串的前缀和后缀的最长相同部分,由于是最大的前缀=后缀,那么将 i i i(子串长度)减去 n e x t [ i ] next[i] next[i],就又得到了一个前缀=后缀,这时只要判断这个的长度是否是 i i i的因数即可。


代码:

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;

int next[1000005],len,t;
char s[1000005];

int main()
{
	while (scanf("%d",&len)==1) 
	{
		if (!len) return 0;
		cin>>s;
		printf("Test case #%d\n",++t);
		len=strlen(s);
		int j=0;
		for (int i=1;i<=len;i++)  //求next数组
		{
			while (j&&s[i]!=s[j]) j=next[j];
			if (s[i]==s[j]) j++;
			next[i+1]=j;
		}
		for (int i=2;i<=len;i++)  //枚举每一位
		 if ( ( !(i% (i-next[i]) ) ) && ( (i/ (i-next[i]) ) !=1) )  //是因数且不为1
		  printf("%d %d\n",i,i/(i-next[i]));
		printf("\n");
	}
}
TESSY创建单元测试或集成测试工程 我们以tessy5.1为例,给大家展示单元测试和集成测试工程的创建过程。 阅读详情

相关推荐

Palantir的Ontology:从静态知识图谱到动态业务引擎的跃迁

本文探讨了Palantir的Ontology技术如何将静态知识图谱升级为动态业务引擎。通过引入函数和行动作为核心元素,Ontology实现了业务逻辑的自动化响应与执行,显著提升物流、能源等领域的运营效率。文章详细解析了其混合存储引擎、状态监听网络等关键技术设计,并对比展示了传统架构与Ontology架构的业务价值差异。

weixin_42570296的博客 200

【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

OpenMMLab实战指南:从环境搭建到首个检测模型运行

本文是一份详细的OpenMMLab实战指南,重点介绍了如何从零开始搭建环境并运行首个目标检测模型。内容涵盖Miniconda环境配置、PyTorch与CUDA版本匹配、使用MIM工具安装MMCV和MMDetection的核心步骤,并通过RTMDet-tiny模型演示了完整的推理流程,帮助开发者高效入门这一计算机视觉开源算法体系。

weixin_28678151的博客 155

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

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

PKU_ZZY的博客 774

Win11网络卡顿?用Wireshark抓包5分钟定位问题(保姆级实战)

本文详细介绍了如何使用Wireshark在Win11系统中快速定位网络卡顿问题。通过5分钟抓包分析,作者成功发现TCP重传率高达37%的罪魁祸首,并提供了从准备工作到实战分析的保姆级教程,帮助用户解决游戏卡顿、视频会议延迟等常见网络问题。

weixin_28839629的博客 306

SoapUI 5.0 模拟WebService接口实战:从WSDL文件到Mock服务端完整流程

本文详细介绍了如何使用SoapUI 5.0模拟WebService接口,从解析WSDL文件到搭建完整的Mock服务端流程。通过实战案例和效率技巧,帮助开发者快速掌握接口模拟技术,提升开发与测试效率。

weixin_26833139的博客 406

KMP POJ1961 Period

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

beihai2013 421

手把手教你安装 OpenClaw 小龙虾(MAC安装教程),一次成功不踩坑

本文详细介绍了在Mac上安装OpenClaw的完整流程。主要内容包括:1)准备工作(磁盘空间、网络环境、终端工具);2)安装Homebrew包管理器及常见问题解决;3)安装Node.js 22+版本(环境核心);4)Git安装与验证;5)OpenClaw项目克隆、依赖安装及运行配置;6)大模型配置方法(以MiniMax为例)。文章提供了详细的命令行操作步骤和常见错误解决方案,特别强调了网络环境要求和Apple Silicon芯片的原生支持注意事项。最后展示了验证配置成功的方法和资源获取渠道。

Chengbei11的博客 6339

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

【SpringBoot 3.x 第56节】再见 Feign?原生 HTTP 接口强势上位,这才是微服务调用的正确姿势!

🏆本文收录于《滚雪球学SpringBoot 3》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。    本专栏致力打造最硬核 SpringBoot3 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot3教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。    若还想学习更多,可直接前往《滚雪球学SpringBoot(全版本合集)》,涵盖SpringBoot所有版本教学文章

**My Coding Family** 1017

【OpenClaw企业级智能体实战】第32篇:政企版OpenClaw安全落地指南——奇安信55页报告深度拆解与实战

2026年Q2,OpenClaw(俗称“龙虾”)安全风险集中爆发,公安部、工信部等监管机构密集发声,23万公网暴露实例、155个高危漏洞让企业“养虾”安全压力骤增。奇安信发布的55页《政企版龙虾安全使用指南》,以“看得清、管得住、用得好”为核心,构建了“端-网-云”三层防护体系。本文深度拆解这份报告的九大安全面与三大趋势,全景扫描奇安信、腾讯、360等头部厂商安全方案,提炼企业最低安全基线与实操配置,通过金融机构虚拟案例演示落地全流程,提供从资产摸底、规范制定到工具部署的完整解决方案。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 572

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的博客 144

基于YOLOv8和时序模型的异常动作检测系统

异常动作检测是计算机视觉领域的重要应用,广泛应用于智能监控、安防系统、老人看护等场景。本项目结合YOLOv8目标检测和LSTM时序模型,实现对打架、摔倒、奔跑等异常动作的实时检测,并提供了完整的Web界面。多技术融合: 结合YOLOv8目标检测和LSTM时序建模实时检测: 支持实时视频流处理和文件分析用户友好: 提供完整的Web界面可扩展性: 模块化设计便于功能扩展高性能: 包含多种优化策略。

YOLO 763

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

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

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

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

【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 游乐园 634

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

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
上一篇: 【POJ 3764】The xor-longest Path【Trie】
下一篇: 【洛谷P1368】工艺【最小表示法】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值