博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ-2406-Power Strings
阅读量:5821 次
发布时间:2019-06-18

本文共 972 字,大约阅读时间需要 3 分钟。

链接:https://vjudge.net/problem/POJ-2406#author=chen_zhe_

题意:

给定若干个长度 ≤ 1000000 的字符串,询问每个字符串最多是由多少个相同的子字符串重复连接而成的。如:ababab 则最多有 3 个 ab 连接而成。

思路:

求kmp的next数组,next[len]对应的后缀长度可以被原长整除,则分为整除段,否则为1。

代码:

#include 
#include
#include
using namespace std;const int MAXN = 1e6 + 10;int Next1[MAXN];int Next2[MAXN];void Get_Next1(char *s){ int i = 0, k = -1, len = strlen(s); Next1[i] = k; while (i < len) { if (k == -1 || s[i] == s[k]) { i++; k++; Next1[i] = k; } else k = Next1[k]; }}int main(){ char s[MAXN]; while (~scanf("%s", s)) { if (s[0] == '.') break; Get_Next1(s); int len = strlen(s); int res = 1; if (len % (len - Next1[len]) == 0) res = len / (len - Next1[len]); cout << res << endl; } return 0;}

  

转载于:https://www.cnblogs.com/YDDDD/p/10507613.html

你可能感兴趣的文章
亚信笔试题
查看>>
Eclipse选中变量名,相同变量都变色显示
查看>>
转: 如何选CDN:互联网大直播时代的CDN选择指南
查看>>
MySQL 基本命令
查看>>
OpenStack网络指导手册 -基本网络概念
查看>>
Nagios
查看>>
html5 的localstorage
查看>>
Android笔记——UI开发
查看>>
linux-文件系统基本概念
查看>>
git-【一】概述安装
查看>>
Maven插件maven-antrun-plugin的使用
查看>>
windows下 jemalloc编译
查看>>
TCGA下载神器--TCGAbiolinks
查看>>
潭拓寺
查看>>
SQL语句中将Datetime类型转换为字符串类型
查看>>
docker 系列 - Docker 安装和Hub Mirror地址设置
查看>>
bootstrap-multiselect样式修改
查看>>
Redis(十九):Redis压力测试工具benchmark
查看>>
C++ 程序员必读书目清单
查看>>
跟小静读CLR via C#(14)-可空值类型,关于?和??的故事
查看>>