`
人生难得糊涂
  • 浏览: 118481 次
社区版块
存档分类
最新评论

POJ2752--KMP求所有可能的相同前缀后缀

 
阅读更多

题意:求既是前缀又是后缀的前缀的可能的长度

 

忙着考试,好几天没做题了,今天做了几道KMP都是1A,但这道题Output Limit Exceeded 了一次  原因是循环输入的时候没有判断是否遇到了文件末尾

 

思路比较简单:一直用next下去即可  最后逆序输出

#include "iostream"
using namespace std;
#define maxsize 400010
char c[maxsize];
int next[maxsize];
int len;
int prin[maxsize];
void get_next()
{
	int i=0;
	int j=-1;
	next[0]=-1;
	while(i<len)
	{
		if (j==-1||c[i]==c[j])
		{
			i++;
			j++;
			next[i]=j;
		}
		else
		{
			j=next[j];
		}
	}
}
int main()
{
	while (scanf("%s",c)!=EOF)//判断是否文件末尾
	{
		
		len=strlen(c);
		get_next();
	
		int temp=next[len];
		int i=0;
		while (temp!=0)
		{
			prin[i++]=temp;
			temp=next[temp];
		}
		while(i--)
		{
			printf("%d ",prin[i]);
		}
		printf("%d\n",len);
	}
}

 

分享到:
评论

相关推荐

    POJ2002-Squares

    【标题】"POJ2002-Squares"是一个经典的计算机编程题目,源自北京大学的在线判题系统(POJ,即PKU Online Judge)。这个题目主要涉及到算法设计和实现,尤其是数学和动态规划方面的知识。 【描述】"解题报告+AC代码...

    POJ3253-POJ3253-Fence Repair【STL优先队列】

    描述“北大POJ3253-POJ3253-Fence Repair【STL优先队列】解题报告+AC代码”表明这是一篇关于如何解答此题目的报告,其中包含了通过AC(Accepted)状态的代码,即代码已经成功通过了所有测试用例。解题报告通常会涵盖...

    POJ1426-Find The Multiple【BFS+同余模】

    【解析】在POJ1426问题中,可能的任务是找到某个数n的所有倍数,或者是在一定范围内找到特定条件下的倍数。使用BFS,我们可以从n开始,逐层扩展,寻找所有的倍数。每一步都乘以一个因子,例如2,3,4等,直到达到...

    POJ1129-Channel Allocation【四色定理】

    2. "POJ1129-Channel Allocation【暴力搜索】.cpp":这可能是另一种解决方案,使用了暴力搜索的方法,即尝试所有可能的染色组合,直到找到满足条件的解决方案。虽然效率可能较低,但暴力搜索对于理解问题和验证其他...

    POJ3020-Antenna Placement

    【标题】"POJ3020-Antenna Placement"是一个经典的计算机编程竞赛题目,源自北京大学的在线评测系统POJ(PKU Online Judge)。这个题目挑战了参赛者在算法设计和实现上的能力。 【描述】"解题报告+AC代码"意味着这...

    poj 1000 - 2000 部分题目 官方分类

    《POJ 1000 - 2000 部分题目 官方分类》 编程竞赛,特别是在线判题系统(如POJ,即Problem Online Judge)中的题目,是提升编程技能和算法理解的重要途径。POJ 1000 - 2000 是一个涵盖广泛的题目区间,包含了大量的...

    POJ1837-Balance

    【标题】"POJ1837-Balance"是一个在线编程竞赛题目,源自著名的编程练习平台POJ(Programming Online Judge)。这个题目旨在测试参赛者的算法设计和实现能力,特别是处理平衡问题的技巧。 【描述】"解题报告+AC代码...

    POJ中缀-后缀-四则运算

    在程序设计语言中,可以利用堆栈的方法把中缀表达式转换成保值的后缀表达式(又称逆波兰表示法),并最终变为计算机可以直接执行的指令,得到表达式的值。 给定一个中缀表达式,编写程序,利用堆栈的方法,计算...

    POJ1258-Agri-Net【Prim】

    【标题】"POJ1258-Agri-Net【Prim】" 是一个编程竞赛题目,来源于北京大学的在线评测系统POJ(Problem Online Judge)。这个题目主要涉及到图论中的一个重要算法——普里姆(Prim)算法。 【描述】"北大POJ1258-...

    POJ1010-STAMPS

    解决这类问题通常需要使用动态规划或者贪心策略,通过对所有可能的子问题进行计算并存储结果,避免重复计算,从而达到优化效率的目的。通过阅读解题报告和AC代码,可以深入理解这个问题的解决方案,以及如何利用编程...

    POJ2525-Text Formalization【TrieTree】

    今天我们要探讨的是一个名为"POJ2525-Text Formalization"的问题,它涉及到一种高效的数据结构——Trie树(也称为前缀树或字典树)。这个题目来源于北京大学的在线判题系统POJ,旨在考察程序员对字符串处理和Trie树...

    POJ2299-Ultra-QuickSort

    【标题】"POJ2299-Ultra-QuickSort"是北京大学在线判题系统POJ上的一道编程题目,其主要涉及的算法是快速排序(Ultra-QuickSort)。快速排序是一种高效的排序算法,由C.A.R. Hoare在1960年提出。它的基本思想是采用...

    魔兽世界终极版POJ的-测试数据

    这是魔兽世界终极版POJ的-测试数据,找了好久才找到的。 本来想设置为0积分,但是它居然自动收费(o_ _)ノ。 看传送门:https://pan.baidu.com/s/1cCIwW8psGDASu2JdZawG3Q

    POJ3414-Pots

    1. **问题描述**:POJ3414题目可能描述了一个关于“Pots”的情境,比如可能涉及到水资源分配、种植管理等实际或抽象的问题,要求参赛者设计程序来处理这些问题。 2. **输入输出格式**:解题报告会详细说明程序需要...

    POJ3295-Tautology

    栈是一种后进先出(LIFO)的数据结构,常用于处理递归或回溯问题,也可能是为了处理逻辑表达式的求值。 3. "POJ3295-Tautology.doc":这可能是一个Word文档,包含了详细的解题报告,包括问题分析、算法设计、代码...

    POJ2503-Babelfish

    【描述】"北大POJ2503-Babelfish 解题报告+AC代码"表明这个压缩包包含了解决这个问题的详细解题报告和已经通过所有测试用例(Accepted,简称AC)的源代码。解题报告通常会包括对问题的理解、算法设计思路、时间...

    POJ1201-Intervals

    代码中可能会用到动态规划、贪心算法等策略,以求在满足题目要求的同时,保证算法的时间复杂度尽可能低,从而在POJ平台上获得AC状态。而解题报告则会详细解释这些算法的应用和选择原因,以及代码的具体实现细节。

    POJ1003-Hangover

    【描述】"解题报告+AC代码"指的是该压缩包中包含了对"POJ1003-Hangover"问题的解答思路和已通过所有测试用例(Accepted,简称AC)的源代码。解题报告通常包括问题分析、算法设计、时间复杂度和空间复杂度分析等部分...

    POJ1159-Palindrome

    【标题】"POJ1159-Palindrome" 是北京大学在线编程平台POJ上的一道编程题目。这道题目主要考察的是字符串处理和回文判断的知识点。 【描述】"北大POJ1159-Palindrome 解题报告+AC代码" 暗示了解决这道问题的方法和...

    POJ3122-Pie

    【描述】"解题报告+AC代码"表示这个压缩包包含了对"POJ3122-Pie"问题的解答思路和已通过测试的源代码(AC,Accepted,表示代码已经通过了所有测试用例)。解题报告通常会详细阐述解决问题的方法,包括对问题的理解、...

Global site tag (gtag.js) - Google Analytics