POJ Period 1691(kmp)

华为2024机考真题集合 2.中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就把中间的两个数之和除以 2,所得的结果就是中位数。在实际考试中会随机抽三道题目进行考察,其中两道100分卷题和一道200分卷题,总共400分。幼儿园组织活动,老师布置了一个任务:每个小朋友去了解与自己同一个小区的小朋友还有几个。3.查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数。1.众数是指一组数据中出现次数量多的那个数,众数可以是多个。 阅读详情

Period
Time Limit: 3000MS Memory Limit: 30000K
Total Submissions: 16765 Accepted: 8069

Description

For each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we want to know whether the prefix is a periodic string. That is, for each i (2 <= i <= N) we want to know the largest K > 1 (if there is one) such that the prefix of S with length i can be written as A K  ,that is A concatenated K times, for some string A. Of course, we also want to know the period K.

Input

The input consists of several test cases. Each test case consists of two lines. The first one contains N (2 <= N <= 1 000 000) – the size of the string S.The second line contains the string S. The input file ends with a line, having the  
number zero on it.

Output

For each test case, output "Test case #" and the consecutive test case number on a single line; then, for each prefix with length i that has a period K > 1, output the prefix size i and the period K separated by a single space; the prefix sizes must be in increasing order. Print a blank line after each test case.

Sample Input

3
aaa
12
aabaabaabaab
0

Sample Output

Test case #1
2 2
3 3

Test case #2
2 2
6 2
9 3
12 4

Source


题意:求每个点是否存在循环节,

分析:求出next[ ]数组,如果 i%(i-next[i])==0 && next[i]!=0则有循环节次数i/(i-next[i]) ,循环节长度i-next[i]

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
#define maxx 1123456
int next[maxx];
char t[maxx];
void get_next(char t[])
{
    int l=strlen(t);
    int i=0,j=-1;
    next[0]=-1;
    while(i<l)
    {
        if(j==-1 || t[i]==t[j])
        {
            i++;j++;next[i]=j;
        }
        else
        {
            j=next[j];
        }
    }
}
int main()
{
    int n,m,i,j;
    int ll=1;
    while(scanf("%d",&n)&&n)
    {
        scanf("%s",t);
        get_next(t);
        int l=n;
        printf("Test case #%d\n",ll++);
        for(i=2;i<=l;i++)
        {
        if(i%(i-next[i])==0 && next[i]!=0)
        printf("%d %d\n",i,i/(i-next[i]));
        }
        printf("\n");
    }
    return 0;
}



jdbc从入门到精通(全) 前言 Java语言连接数据库(Java DataBase Connectivity) 面向接口/抽象编程(降低程序的耦合度,提高程序的扩展力)类似多态机制 阅读详情

相关推荐

revit二次开发环境搭建(2024版)(小白友好)

revit二次开发环境配置,SDK、addin manager和lookup新手友好安装教程

m0_56961251的博客 1420

POJ - Period(KMP)

题目链接:http://poj.org/problem?id=1961Time Limit:3000MSMemory Limit:30000K Description For each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inc...

ityanger的技术栈 2768

OpenCV+ArUco实战:如何用Python实现高精度二维码测距(附完整代码)

本文详细介绍了如何使用Python和OpenCV实现基于ArUco标签的高精度单目视觉测距。通过相机标定、标签检测和三维位置估算,结合完整代码示例,帮助开发者在机器人导航、工业自动化等场景中实现厘米级距离测量,并探讨了精度优化与三维可视化等进阶应用。

weixin_29052717的博客 478

poj Period 1961

Period Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 16988   Accepted: 8172 Description For each prefix of a given string S with N characters (each chara

大众博客 336

OCCT(Open CASCADE Technology)入门-2.搭建开发环境

安装完成后,在【扩展】菜单下会看到【Qt VS Tools】菜单,打开子菜单【options】进入qt配置窗口。打开VS后随便创建一个新项目,进入开发环境主页,打开顶部菜单【扩展】->【管理扩展】打开管理扩展窗口。然后点击右下角【创建】,一路【next】即可,最后会进入到开发主界面,得到一个下面的工程结构。好了,到这里基本的环境我们已经安装好了,下面我们开始创建项目并配置开发环境。打开顶部菜单【项目】,点击最后一个菜单项【xxx属性】,进入项目配置界面。这里的配置一般不用改,我们看【Versions】

2501_91235145的博客 2876

从TI官方手册里挖细节:TPS5430负压电路那个不起眼却救命的Cd电容

本文深入解析TPS5430负压电路中关键Cd电容的作用与设计要点,揭示其在DC-DC电源设计中的重要性。通过对比TI手册和实战案例,详细阐述Cd电容在高频电流回路、能量缓冲和噪声抑制中的核心功能,并提供选型与布局指南,帮助工程师避免芯片烧毁风险,提升电路稳定性。

weixin_27102543的博客 357

POJ - 1961 Period(KMP求最短循环节)

PeriodTime Limit: 3000MS Memory Limit: 30000KDescriptionFor each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we want to know whether...

x__1998的博客 597

Altium Designer应用技巧5: Altium Live账号的获得

为了更好的应用Altium Designer,我们需要得到一个Altium Live账号,但从其英文或者中文官方网站取得,都需要7个工作日的时间,而且对于个人用户来说,并不是100%都能够获取到。本文介绍一种,从俄罗斯Altium官方网站获取账号的方法,可以立即使用。     1、点击http://live.altium-ru.com/#Join网址进入俄罗斯Altium官方网站,Altiu

snmplink的博客 1万+

前缀中的周期

5:前缀中的周期 总时间限制:  3000ms  内存限制:  65536kB 描述 一个字符串的前缀是从第一个字符开始的连续若干个字符,例如"abaab"共有5个前缀,分别是a, ab, aba, abaa,  abaab。我们希望知道一个N位字符串S的前缀是否具有循环节。换言之,对于每一个从头开始的长度为 i (i 大于1)的前缀,是否由重复出现的子串A组成,即 AAA...A ...

m0_57375647的博客 1366

企业级托管钱包架构设计与MPC密钥管理:基于Go语言的生产级实践

本文探讨了2026年Web3生态中企业级托管钱包的技术架构与实现方案。文章指出,传统私钥管理模式已无法满足机构级资产管理需求,而基于多方安全计算(MPC)和门限签名(TSS)的技术方案成为主流选择。研究分析了托管钱包的四层架构设计,详细解读了MPC的核心技术原理,包括分布式密钥生成(DKG)和签名协议演进。通过Go语言实现案例,展示了密钥分片管理、DKG流程和交易签名等核心模块的代码实现。文章还提出了生产部署的安全原则、容灾设计和监控体系,并讨论了密钥撤销等现存挑战及TEE融合等未来趋势。研究为构建安全、高

分享AI、区块链技术及应用,未来已来 81

JAVA:Spring Boot3 集成 Spring AI 实现 Skill 开发

本文介绍了如何通过Spring Boot和Spring AI实现大模型技能(Skill)开发,让AI具备调用业务系统能力。文章首先解释了Skill的概念,即AI可调用的业务能力,如查询订单、天气等,并展示了执行流程和整体架构。然后详细介绍了实践样例,包括技术版本、Maven依赖配置、AI服务设置、ChatClient创建和Skill技能注册中心的实现。注册中心提供了技能的注册、查询、启用/禁用等功能,支持按类别管理技能,并能够获取所有可用技能列表。通过这种方式,开发者可以轻松为大模型扩展业务功能调用能力。

木头 623

POJ-1964 Period

题目链接:http://poj.org/problem?id=1961 题目大意: 给你一个字符串,求这个字符串到第i个字符为止的循环节的次数。 比如aabaabaabaab,长度为12.到第二个a时,a出现2次,输出2.到第二个b时,aab出现了2次,输出2.到第三个b时,aab出现3次,输出3.到第四个b时,aab出现4次,输出4. 解题思路: 这道题好像就是POJ 2406的加...

datoplay 305

一文搞懂多速率信号处理中信号插值的本质:从插 0、插原值到线性插值!

信号插值在数字信号处理中经常被使用,但“插值”背后究竟发生了什么,却常被忽略。插0、插原值、线性插值看似只是不同的实现方式,实则对应着完全不同的频域效应与滤波特性。本文将结合公式与MATLAB仿真,深入剖析插0、插原值与线性插值三种典型策略的本质区别。

m0_66360845的博客 921

poj-Period-1961

KMP的精髓就在于next[]数组,

灰色头像不会再跳动 529

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

POJ-1961(Period)(kmp())

POJ-1961(Period)(kmp()) Description For each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we want to know whether the prefix

hpulw 1050

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

[POJ1961] Period

题目描述给你若干个字符串,对于每个字符串,分解成N个前缀子串。对于每个前缀子串,看其是由几个重复子串构成的。也就是说,对于字符串S的前i (2 <= i <= N)个字符能否用子串A表示为AK的形式,要求计算子串A的长度和循环周期k(k>1)的值。例如aabaabaab,前缀子串aa,是由2个a构成的;前缀子串aabaab,是由2个aab构成的,前缀子串aabaabaab是由,3个aab构成的。输入

Bill_Yang_2016的博客 360

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Period(POJ-1961)

Problem Description For each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we want to know whether the prefix is a periodic string. T...

Alex_McAvoy的博客 514

poj 1961 Period

KMP求循环节

我要吃熊猫 628

POJ:1961-Period(寻找字符串循环节)

PeriodTime Limit: 3000MS Memory Limit: 30000KDescriptionFor each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we want to know whet

二营长的意大利炮友 790

LA3026 POJ1961 period 字符串周期(KMP) POJ2406 Power Strings

POJ 1961 http://poj.org/problem?id=1961  Period Description For each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we want to

我的指针和我一样找不到对象 2782

poj1961 Period

Period Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 16368   Accepted: 7852 Description For each prefix of a given string S with N characters

ACoder 437

UVA 1328 Period(KMP:最短循环节)

UVA 1328 Period(KMP:最短循环节) 题意:对于一个字符串,求它的所有前缀的最短循环节.比如对于前i(i>=2)个字符构成的子串,该串是由某个更小的子串重复k(k>=2)次形成的.由于要求最短循环节,所以对于同一前缀来说,k尽量大. 分析:详解见刘汝佳:训练指南P213 如果前i(i>=2)个字符(即0到i-1字符)是一个周期串,那么错位部分就是一个最短循环节,i%(i-f[

code 1845

POJ - 1961 Period(水)

Period Time Limit: 3000MS   Memory Limit: 30000KB   64bit IO Format: %I64d & %I64u Submit Status Description For each prefix of a given string S with N characters (each

luciozhang的博客 994

poj--1961--Period

Period Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 18603   Accepted: 9044 Description For each prefix of a given string S with N characters (each chara

职业炮灰的博客 338

POJ - 1961 Period

Period Time Limit: 3000MS   Memory Limit: 30000KB   64bit IO Format: %I64d & %I64u Submit Status Description For each prefix of a given string S with N characters (each

Puya的博客 446

poj_1961 Period

http://poj.org/problem?id=1961 分析:         S的长度为i的前缀可以表示成A^K形式,求i和K。KMP中next数组的应用。 Out: 2 2 6 2 9 3 12 4          依次继续,由于整除最后蓝色小块与红色小块会重合,H=T,所以    K=i/(i-next[i]); 2.2

naturelan的专栏 658
上一篇: POJ Power Strings 2406
下一篇: 2016 ccpc(长春) Sequence I (kmp)
K_y
K_y
博客等级 码龄10年 4粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值