当前位置: 首页 > news >正文

[KMP求最小循环节][HDU1358][Period]

题意

求所有循环次数大于1的前缀
的最大循环次数和前缀位置

解法

直接用KMP求最小循环节

当满足i%(i-next[i])&&next[i]!=0
前缀循环次数大于1
最小循环节是i-next[i]

#include <cstdio>
#include <cstring> 
#include <iostream>
#include <cstdlib>
using namespace std;
char S[2000000];
int NEXT[2000000];
int len;
int CASE=0;
void get_next()
{
    for(int i=1;i<=len;i++)
    {
        int p=i-1;
        while(S[i]!=S[NEXT[p]+1]&&p!=0) p=NEXT[p];
        if(p!=0)
        NEXT[i]=NEXT[p]+1;
    }
}
int main()
{
    int N;
//  freopen("a.in","r",stdin);
    while(cin>>N&&N)
    {
        memset(S,0,sizeof(S));
        memset(NEXT,0,sizeof(NEXT));
        printf("Test case #%d\n",++CASE);
        scanf("%s",S+1);        
        len=strlen(S+1);
        get_next();
        for(int i=1;i<=len;i++)
        {
            if(i%(i-NEXT[i])==0&&NEXT[i]!=0)
                {
                    printf("%d %d\n",i,i/(i-NEXT[i]));
                }
        }
        printf("\n");
    }
} 

转载于:https://www.cnblogs.com/zy691357966/p/5480316.html

相关文章:

  • Ajax与json在前后端中的细节解惑
  • SQL Server相关书籍
  • 华为第七届无线编码大赛总结(转)
  • deepinmind(转)
  • NSAttributedString
  • aes加密iOS 实现
  • iOS视频录制,裁剪(输出指定大小)
  • KMP,深入讲解next数组的求解(转载)
  • 初步swift语言学习笔记9(OC与Swift杂)
  • Mysql事务处理
  • UVA 11769 All Souls Night 的三维凸包要求的表面面积
  • html: Table合并行和列
  • win10升级提示图标的四种关闭方法
  • window平台下的MySQL快速安装。(不好意思,未完成待续,请飘过)
  • 教您如何检查oracle死锁,决解死锁
  • [PHP内核探索]PHP中的哈希表
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • Java面向对象及其三大特征
  • LeetCode算法系列_0891_子序列宽度之和
  • MQ框架的比较
  • MySQL用户中的%到底包不包括localhost?
  • Sass 快速入门教程
  • vue.js框架原理浅析
  • 翻译:Hystrix - How To Use
  • 仿天猫超市收藏抛物线动画工具库
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 如何选择开源的机器学习框架?
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​虚拟化系列介绍(十)
  • #14vue3生成表单并跳转到外部地址的方式
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $(selector).each()和$.each()的区别
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (30)数组元素和与数字和的绝对差
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (python)数据结构---字典
  • (pytorch进阶之路)扩散概率模型
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (三) diretfbrc详解
  • (三)Honghu Cloud云架构一定时调度平台
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)nsfocus-绿盟科技笔试题目
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET 解决重复提交问题
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • .NET委托:一个关于C#的睡前故事