题目链接:https://cn.vjudge.net/problem/HDU-1358

题意

给一个字符串,对下标大于2的元素,问有几个最小循环节

思路

对每个元素求一下minloop,模一下就好

提交过程

TLE maxn没给够
AC

代码

#include <cstring>
#include <cstdio>
const int maxm=1e6+20;
char P[maxm];
int fail[maxm];
void getFail(int m){
fail[0]=fail[1]=0;
for (int i=1; i<m; i++){
int j=fail[i];
while (j && P[j]!=P[i]) j=fail[j];
fail[i+1]=((P[i]==P[j])?j+1:0);
}
} int main(void){
int len, kase=0;
while (scanf("%d", &len)==1 && len){
scanf("%s", P);
getFail(len); printf("Test case #%d\n", ++kase);
for (int i=2; i<=len; i++){
int maxloop=i-fail[i];
if (maxloop!=i && i%maxloop==0) printf("%d %d\n", i, i/maxloop);
}printf("\n");
} return 0;
}
Time Memory Length Lang Submitted
78ms 6100kB 625 G++ 2018-08-02 10:46:24

HDU-1358 Period 字符串问题 KMP算法 求最小循环节的更多相关文章

  1. HDU-3746 Cyclic Nacklace 字符串匹配 KMP算法 求最小循环节

    题目链接:https://cn.vjudge.net/problem/HDU-3746 题意 给一串珠子,我们可以在珠子的最右端或最左端加一些珠子 问做一条包含循环珠子的项链,最少还需要多少珠子 思路 ...

  2. hdu 3746 Cyclic Nacklace(next数组求最小循环节)

    题意:给出一串字符串,可以在字符串的开头的结尾添加字符,求添加最少的字符,使这个字符串是循环的(例如:abcab 在结尾添加1个c变为 abcabc 既可). 思路:求出最小循环节,看总长能不能整除. ...

  3. The Minimum Length - HUST 1010(求最小循环节)

    题意:有个一字符串A(本身不是循环串),然后经过很多次自增变成AAAAA,然后呢从自增串里面切出来一部分串B,用这个串B求出来A的长度.   分析:其实就是求最小循环节.......串的长度 - 最大 ...

  4. HDU 3746 - Cyclic Nacklace & HDU 1358 - Period - [KMP求最小循环节]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3746 Time Limit: 2000/1000 MS (Java/Others) Memory Li ...

  5. hdoj3746(kmp算法的nex数组求最小循环节)

    题目链接:https://vjudge.net/problem/HDU-3746 题意:给定一个字符串,问最少在两端添加多少元素使得整个字符串是呈周期性的. 思路: 应用到kmp中nex数组的性质,数 ...

  6. KMP 求最小循环节

    转载自:https://www.cnblogs.com/chenxiwenruo/p/3546457.html KMP模板,最小循环节   下面是有关学习KMP的参考网站 http://blog.cs ...

  7. poj2406--Power Strings(KMP求最小循环节)

    Power Strings Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 33178   Accepted: 13792 D ...

  8. KMP模板,最小循环节

    (可以转载,但请注明出处!) 下面是有关学习KMP的参考网站 http://blog.csdn.net/yaochunnian/article/details/7059486 http://blog. ...

  9. next数组求最小循环节

    1.kmp产生的next数组: 最小循环节(长度)=len-next[len]; 证明: ----------------------- ----------------------- k    m ...

随机推荐

  1. php基础-------preg_replace()与preg_replace_callback()

    1.preg_replace() 执行一个正则表达式的搜索和替换. 语法: mixed preg_replace ( mixed $pattern , mixed $replacement , mix ...

  2. 基于cxf的webService服务发布及客户端开发

    学习地址: http://www.cnblogs.com/leihenqianshang/category/795140.html

  3. 工作需求——VBA操作打印机

    因为最近做的事情比较多,平时也多用EXCEL,所以顺便学习EXCEL的功能性的东西 转载:https://msdn.microsoft.com/zh-tw/vba/excel-vba/articles ...

  4. virtualenv和virtualenvwrapper的安装与使用

    环境 Windows 10 python 3.6.7 virtualenv 安装 virtualenv用于创建虚拟环境,用于隔离不同的python版本的运行,是容器类软件.这里在Windows下通过p ...

  5. web前后端安全问题

    1. 安全问题主要可以理解为以下两方面: 私密性:资源不被非法窃取和利用,只有在授权情况下才可以使用: 可靠性:资料不会丢失.损坏及篡改: 2. web安全的层面 代码层面:写代码时保证代码是安全的, ...

  6. swoole 清除定时器提示no timer

    首页确定一个核心概念 clearTimer仅可清除当前进程的定时器 server代码如下: <?php class Server { private $serv; private $timer; ...

  7. Python破解Wifi密码思路

    一.前言说明 本机运行环境:系统环境Win10,运行环境Python3.6,运行工具Pycharm 需要Python的包有:pywifi 这是一种暴力破解wifi的模式,需要的时间比较长,本文主要提供 ...

  8. 【codeforces 747E】Comments

    [题目链接]:http://codeforces.com/problemset/problem/747/E [题意] 给你一个类似递归的结构; 让你把每一层的字符串按照层,一层层地输出出来; 并输出层 ...

  9. 第八章 Servlet概述

    第八章 Servlet概述 主要内容: 了解servlet: 掌握servlet实现: 掌握servlet的生命周期. servlet概念 Servlet是运行在服务器端用Java语言编写的应用程序, ...

  10. HTML---经常使用标签总结与实践

    什么是HTML? 超文本标记语言,标准通用标记语言下的一个应用.    "超文本"就是指页面内能够包括图片.链接,甚至音乐.程序等非文字元素. 超文本标记语言的结构包含" ...