HDU - 1358 Period ( kmp )

Win10自动更新怎么永久关闭?有效的Win10强制更新关闭方法 之前小编为大家分享过一些Win10彻底关闭Windows Update自动更新的方法,主要是通过一些如设置流量计费或借助一些专门的小工具来实现,但往往会发现,Win10自动更新就像打不死的小强,不管怎么关闭,之后还是会自动更新,让不少小伙伴颇为不爽。今天小编带来了这篇改进型教程,通过全方位设置,彻底关闭Win10自动更新,感兴趣的小伙伴不妨试试吧。 ... 阅读详情
题目链接:点击进入
题目

在这里插入图片描述
在这里插入图片描述

题意

对于 s 长度为 i 的前缀 ( i >= 2 ) ,若是满足完全由循环节构成,且循环周期 k > 1,输出此前缀的长度以及循环周期。

思路

kmp 判断循环节以及求解循环周期
定理:假设 S 的长度为 len ,则 S 存在最小循环节,循环节的长度 L 为 len – next [ len ]
如果 len 可以被 len - next [ len ] 整除,则表明字符串 S 可以完全由循环节循环组成,循环周期 T = len / L 。
将这个结论里的 len 换成 i ,就是求每个前缀的最小循环节。

代码
// Problem: Oulipo
// Contest: Virtual Judge - POJ
// URL: https://vjudge.net/problem/POJ-3461
// Memory Limit: 65 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

//#pragma GCC optimize(3)//O3
//#pragma GCC optimize(2)//O2
#include<iostream>
#include<string>
#include<map>
#include<set>
//#include<unordered_map>
#include<queue>
#include<cstdio>
#include<vector>
#include<cstring>
#include<stack>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<fstream>
#define X first
#define Y second
#define base 233 
#define INF 0x3f3f3f3f3f3f3f3f
#define pii pair<int,int>
#define lowbit(x) x & -x
#define inf 0x3f3f3f3f
//#define int long long
//#define double long double
//#define rep(i,x,y) for(register int i = x; i <= y;++i)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const double pai=acos(-1.0);
const int maxn=1e6+10;
const int mod=1e9+7;
const double eps=1e-9;
const int N=5e3+10;
/*--------------------------------------------*/
inline int read()
{
    int k = 0, f = 1 ;
    char c = getchar() ;
    while(!isdigit(c)){if(c == '-') f = -1 ;c = getchar() ;}
    while(isdigit(c)) k = (k << 1) + (k << 3) + c - 48 ,c = getchar() ;
    return k * f ;
}
/*--------------------------------------------*/

int n,Next[maxn];

void getnext(string s,int len)
{
	int k=-1,j=0;
	Next[0]=-1;
	while(j<len)
	{
		if(k==-1||s[j]==s[k])
		{
			k++;
			j++;
			Next[j]=k;
		}
		else k=Next[k];
	}
}

int main() 
{
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	int tot=0;
	while(cin>>n)
	{
		if(n==0) break;
		string s;
		cin>>s;
		int len=s.size();
		getnext(s,len);
		cout<<"Test case #"<<++tot<<endl;
		for(int i=1;i<=len;i++)
		{
			int l=i-Next[i];
			if(i%l==0&&i/l>1)
				cout<<i<<" "<<i/l<<endl;
		}
		for(int i=0;i<=len;i++) Next[i]=0;
		cout<<endl;
	}
    return 0;
} 
6、探索音乐结构中的统一性:贝多芬《英雄交响曲》第一乐章的深度剖析 本文深入剖析了贝多芬《英雄交响曲》第一乐章的音乐结构,探讨其统一性的来源及表现形式。通过主题与动机、和声与调性、旋律与节奏、织体与动态等多方面的分析,揭示了这部作品在技术层面和情感表达上的卓越成就。 阅读详情

相关推荐

算法面经手撕系列(2)--手撕BatchNormlization

手动实现/手撕BatchNormlization

罟霖同学的站点 865

【hdu1358】Period——KMP

题目: Period Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5732    Accepted Submission(s): 2766 Problem Description For each pre

CFhM_R's Blog 472

GEE开发之ERA5(气温、降水、压力、风速等)数据获取和分析

前言:ERA5主要提供DAILY和MONTHLY两大类别数据,其中主要包括气温、降水、压力、风速等。

等待着冬天的风的博客 3万+

HDU 1358 Period(KMP)

题目链接:点击打开链接 思路:KMP水题,Next函数的应用。求字符串的每个前缀是否是周期串,是的话就输出循环节长度和循环次数。此题注意的是,不能优化求Next部分。 // HDU 1358 Period 运行/限制:124ms/1000ms #include #include #include using namespace std; char s[1000005]; int Next

不忘初心 401

Keil MDK编译错误#541解决方案与ARM_Compiler包解析

在嵌入式开发中,编译器工具链的依赖管理是确保项目顺利构建的关键环节。以Keil MDK为例,其软件包依赖机制通过组件化设计实现功能解耦,其中ARM_Compiler包专门处理系统IO重定向等编译器扩展功能。这种架构既提升了模块复用性,也带来了版本兼容性挑战。当出现'Error #541: component missing'报错时,通常是由于中间件组件(如文件系统)在新版本中显式依赖了ARM_Compiler包。开发者需要通过Pack Installer安装该包,并在Run-Time Environment

weixin_32129187的博客 365

Linux下安装FastDFS及生成缩略图

1. 安装编译环境 yum install git gcc gcc-c++ make automake vim wget libevent -y 2. 安装libfastcommon基础库 mkdir /root/fastdfs cd /root/fastdfs git clone https://github.com/happyfish100/libfastcommon.git --depth 1 cd libfastcommon/ ./make.sh && ./make.sh ins

weixin_45234710的博客 1373

ACM-KMP之Period——hdu1358

Period Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2401 Accepted Submission(s): 1190 Problem Description For each prefix of a given stri

继续激情,继续奋斗。 2371

【华为OD机试】真题-小明减肥(Java)

摘要:题目要求从n个可选运动中选取k个,使其卡路里总和等于目标值t,统计可行方案数。输入包含运动数量n、目标t、选择数量k及卡路里数组。采用DFS回溯算法,通过剪枝优化(提前终止无效分支),分别处理选择/不选当前运动的情况。当遍历完所有运动且满足条件时计数。示例输入"4 3 2"和"1 2 3"时,输出2(对应两种选择组合)。Java实现通过递归完成搜索,最终输出符合条件的方案总数。(149字)

u014481728的博客 285

【HDU】1358 Period KMP

传送门: #include #include #include using namespace std ; const int maxN = 1000005 ; char a[maxN] ; int fail[maxN] ; void Get_Fail ( char a[] , int len ) { fail[1] = 0 ; for ( int i = 2 , j

poursoul 803

Android开发工程师面试问题与参考答案

这是一份Android开发工程师职位面试指南,主要针对自研OS开发岗位。岗位要求3年以上独立开发经验,熟悉Android平台UI设计、四大组件和Java基础。面试问题覆盖五大核心领域:基础知识、开发经验、技术深度、问题解决和性能优化。文章提供了典型面试问题及专业参考答案,帮助应聘者准备关键技术点,如多线程处理、HashMap与ConcurrentHashMap区别、Handler机制等。同时建议应聘者结合项目经验展示优化能力,并注意公司提供完善的薪酬福利和团队文化。

郑伟强dev的专栏 893

小工匠聊架构-分布式场景下的并发幂等性常见的解决方案

Pre 我们来回顾下单体时代 单体时代,应用部署在一台主机上,可以使用JVM级别的锁来控制并发请求 。 随着应用规模的不断扩大,集群化或者微服务化的分布式部署越来越普及,每个应用都是一个单独的JVM应用,所以单体时代的这种处理方式已经无法满足当前架构下的业务需求了。 JVM级别的锁已经无法满足跨进程之间访问控制了,进而演化出来了分布式锁。 分布式锁 能否解决幂等性问题? 分布式锁解决什么问题? 简言之: 解决跨进程间无法共享本地资源的问题 ,解决的是分布式场景下并发访问的问题。 为什么需要确保并发.

小工匠 2万+

HDU 1358 Period KMP

题目描述 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

u013087645的专栏 680

Codex 100个真实案例 - 用AI做在线考试系统(自动组卷+防作弊)

本案例使用 Codex 从零搭建一个功能完整的在线考试系统。涵盖题库管理(单选/多选/判断/填空)、智能随机组卷、考试倒计时、自动判分、成绩统计分析、以及多维度防作弊机制(切屏检测、禁止复制粘贴、IP限制等)。前端使用 Vue 3 + Element Plus 构建考试界面,后端使用 Node.js + Express + MySQL 提供 API 服务。全程用自然语言驱动 Codex 完成开发,最终交付一个可直接部署的在线考试平台。

yueyeguzhuo的专栏 79

hdu 1358 Period KMP

题目大意:对于一个字符串,找由循环字符串组成的位置,并输出最多循环了几次,比如两个样例,第一个是 aaa ,所以在第二个位置由子串a循环两次得到,第三个位置由a循环3次,第二个样例aabaabaabaab,在第二个位置由a循环两次,在第六个位置由aab循环两次,在第9个位置由aab循环3次,在第12个位置由aab循环4次,注意,在第12个位置不是由aabaab循环2次,因为要求循环次数最...

amily05200的博客 173

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

HDU1358 Period【KMP】

Period Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 13519    Accepted Submission(s): 6330   Problem Description For each prefix of a give...

逐梦者 268

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

hdu1358 Period--KMP

原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=1358 一:原题内容 Problem Description For each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, i

半壶老酒 873

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【HDU 1358 Period 】 KMP

HDU1358 本题题意为求给定字符串中所有为循环串的前缀,并输出该前缀的最后一个字符下标和周期 用到模板中给定的方法,只要对每个字符串判定一下是否为循环串就可以了 HDU1358代码 #include&lt;stdio.h&gt; #include&lt;iostream&gt; #include&lt;string.h&gt; using namespace std ; const...

lajiyuan的博客 176

hdu1358 period ,Kmp

计算KMP的失配函数: /************************************************ * Author: yew1eb * Created Time: 2014/3/6 15:31:36 * File Name: hdu1358.cpp *************************************************/ #i

天亮说晚安 1850

HDU 1358 Period KMP

题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1358 求周期问题,简单KMP—— AC代码: #include #include #include #include #include #include #include #include #include #include #include #inclu

lamborghini1993 1362

HDU1358 Period(KMP)

给出一个字符串,问这个字符串的所有前缀是否油循环节,并且说出有几个循环节构成 KMP算法可以的next数组可以用来计算循环节。 #include #include #include using namespace std; const int N=1000005; int nextt[N]; char str[N]; void makenextt(char p[],int len) {

HOrchard 256

HDU 1358 Period (KMP)

KMP

NeWnIx 571

hdu-1358 Period 【kmp】

Period Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3443    Accepted Submission(s): 1727 Problem Description For each prefix of

mfcheer 664

hdu 1358 period KMP入门

Period 题意:一个长为N (2 <= N <= 1 000 000) 的字符串,问前缀串长度为k(k > 1)是否是一个周期串,即k = A...A;若是则按k从小到大的顺序输出k即周期数; Sample Input 3 aaa 12 aabaabaabaab 0 Sample Output Test case #1 2 2 3 ...

weixin_30664539的博客 167

Period HDU - 1358(KMP)

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...

Top_Spirit的博客 225

Period hdu1358 KMP

http://acm.hdu.edu.cn/showproblem.php?pid=1358 过了个年。疯玩了很久。一直都没写题。深感惭愧 … 解析参考前辈的博客 http://fudq.blog.163.com/blog/static/19135023820126523434614/ 题意 利用第二组测试数据来解释: input: 12 aabaabaabaab out

operator456的专栏 457

[HDU 1358]Period[kmp求周期]

题意: 每一个power前缀的周期数(>1). 思路: kmp的next. 每一个前缀都询问一遍. #include #include const int MAXN = 1000005; int next[MAXN]; char s[MAXN]; //93MS 5092K void prekmp() { next[0] = -1; int j = -1; f

以中有足乐者... 1177
上一篇: HDU - 4763 Theme Section( kmp )
下一篇: CodeForces - 625B War of the Corporations( kmp )
Cosmic_Tree
博客等级 码龄7年 134粉丝 337原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值