`
阿尔萨斯
  • 浏览: 4334353 次
社区版块
存档分类
最新评论

fzu 1901 Period II(KMP)

 
阅读更多

题目链接:fzu 1901 Period II


题目大意:给出一个字符串,要求找出所有的p,使得说s[i] = s[i+p] (i < len - p - 1)。


解题思路:其实就是求所有的前缀后缀串,p = n, 然后一直循环p = jump[p]; 直到p = 0,其他的p值,n - p都是答案。


#include <stdio.h>
#include <string.h>

const int N = 1e6+5;

int n, jump[N], ans[N];
char s[N];

void getJump () {
	int p = 0;
	for (int i = 2; i <= n; i++) {
		while (p > 0 && s[p+1] != s[i])
			p = jump[p];

		if (s[p+1] == s[i])
			p++;
		jump[i] = p;
	}
}

void solve () {
	int c = 0, p = n;
	while (p) {
		p = jump[p];
		ans[c++] = p;
	}

	printf("%d\n", c);
	printf("%d", n-ans[0]);
	for (int i = 1; i < c; i++)
		printf(" %d", n-ans[i]);
	printf("\n");
}

int main () {
	int cas;
	scanf("%d", &cas);
	for (int i = 1; i <= cas; i++) {
		scanf("%s", s+1);

		n = strlen(s+1);

		getJump ();

		printf("Case #%d: ", i);
		solve ();
	}
	return 0;
}


分享到:
评论

相关推荐

    fzu online judge

    【fzu在线评测系统】是面向编程爱好者和学习者的一个平台,主要功能是提供各种算法题目供用户在线解答,以提升编程能力和算法思维。在这个压缩包文件中,包含的是一些关于fzu在线评测系统的解题记录,虽然题目难度...

    fzu 1698解题报告

    求最大乘积 的源代码 次题是fzu 4月月赛题 是一道数学题啊

    福大fzu OJ题目

    不要下载此版的,请下载最新的http://download.csdn.net/source/1664620 离线版的福大acm在线评测OJ系统题目 更新到2009年8月 (注:chm电子书格式化)

    2021FZU计算机视觉期末复习

    计算机视觉是研究如何让计算机理解和解释视觉信息,使之能够复制人类对视觉信息的处理、分析和理解能力,并做出相应的行为决策。它涉及图像采集、处理、分析和理解等多个方面,广泛应用于工业自动化、监控系统、医疗...

    2011 ACM 多校联合 2011 MU11 13 FZU

    6. **字符串处理**:KMP算法、Manacher's Algorithm等,用于处理字符串匹配问题。 7. **模拟**:对实际问题进行抽象建模,编写程序来模拟过程。 8. **编码技巧**:如何高效地读入数据、输出结果,如快速IO、大整数...

    fzu大数据基础实验4

    fzu大数据基础实验4

    2021FZU计算机视觉作业(八)

    在计算机视觉领域中,灰度共生矩阵(GLCM)是一种用于纹理特征分析的技术。它通过计算图像中像素值的相对位置和分布来揭示图像的纹理特性,这些特性在图像分割、特征提取和图像分析等领域中非常有用。...

    FZU飞跃手册 相关文件 (FZU Flying Book Relevant documents)

    这是关于我们飞跃手册项目的相关文档,包括成员分组信息表格,各组成员任务概要文档,项目日记等文档。 (This is a collection of documents relating to our Leapfrog Handbook project, including member ...

    FZU软件工程操作系统课程复习资料-整理

    FZU软件工程操作系统课程复习资料-整理 本资源摘要信息是关于FZU软件工程操作系统课程复习资料的整理,涵盖操作系统的基本概念、进程和线程、存储管理和文件系统等方面的知识点。 一、操作系统的定义和主要功能 ...

    FZU软件工程web课程复习资料-整理

    "FZU软件工程web课程复习资料-整理" 本资源是FZU软件工程web课程的复习资料,涵盖了web开发的基础知识和技术。下面是对该资源中所涉及的知识点的详细解释: 第一讲 web 开发概述 1. 因特网与万维网 因特网是一种...

    ACM数学_FZU绝密资料

    根据给定的文件标题“ACM数学_FZU绝密资料”及描述“ACM数学_FZU...............绝密..........”,我们可以看出这份资料主要聚焦于数学在ACM竞赛中的应用,尤其是在解决算法问题时数学理论的重要性。下面我们将从...

    C#作业(FZU)miniword完整版

    【C# miniword 完整版】是一款基于C#编程语言开发的小型文字处理软件,类似于微软的Word,主要用于FZU(福州大学)的教学与作业。该项目旨在让学生熟悉C#编程环境,掌握Windows Forms应用程序的开发技术,以及对文本...

    ACM半数集(FZU ACM上的半数集问题)

    FZU ACM 上的半数集问题 的源代码

    FZU2021计算机视觉慕课答案(一)

    FZU2021计算机视觉慕课是一门面向学生和研究人员的基础课程,其中包含了丰富的实践案例和练习题。从提供的文件内容中,我们可以提取一些计算机视觉中的基础知识点,包括图像的读取、显示、转换、保存、以及图像处理...

    fzu 1812 coin 背包

    1812 coin 解题代码 多重背包的应用

    fzu—java张苏老师课件

    《fzu—java张苏老师课件》是一个针对Java初学者的课程资料集合,由一系列PPT文件组成,包括了从基础到进阶的多个章节。这个资源旨在帮助初学者系统地学习Java编程语言,逐步掌握其核心概念和技术。下面我们将详细...

    2021FZU计算机视觉答案(五)

    标题“2021FZU计算机视觉答案(五)”表明本文档是一份关于计算机视觉题目的解答集,特别是涉及到与图像处理和分析相关的内容。从给出的部分内容来看,文档包含实现特定图像处理任务的Python代码示例,具体涉及到...

    FZU编译原理实践作业一参考代码

    仅作参考,抄被发现后果自负哈。

    FZU2021计算机视觉答案(四)

    FZU2021计算机视觉答案(四)中包含了肤色检测的实验过程和代码实现,以下是从该文件中提取出来的知识点: 1. **肤色检测的基本原理**: 肤色检测通常基于色彩空间中的色度或亮度属性,例如,在RGB色彩空间中,...

Global site tag (gtag.js) - Google Analytics