String Problem kmp+最大最小表示法

内核工作FAST‘25 Artifact Evaluation流程记录 在我们的paper中,复现需要用到傲腾持久化内存,因此,需要AE Reviewer访问到内网服务器中。我们的思路是购买云服务器,将其作为跳板机,内网服务器通过SSH反向代理与公网服务器建立隧道,AE Reviewer通过隧道访问内网服务器。我们在AE过程中使用。然后,把一切复现需要的代码环境,在chroot里面配置完成。 阅读详情

题目描述:

Give you a string with length N, you can generate N strings by left shifts. For example let consider the string “SKYLONG”, we can generate seven strings:
String Rank
SKYLONG 1
KYLONGS 2
YLONGSK 3
LONGSKY 4
ONGSKYL 5
NGSKYLO 6
GSKYLON 7
and lexicographically first of them is GSKYLON, lexicographically last is YLONGSK, both of them appear only once.
Your task is easy, calculate the lexicographically fisrt string’s Rank (if there are multiple answers, choose the smallest one), its times, lexicographically last string’s Rank (if there are multiple answers, choose the smallest one), and its times also.

输入:

Each line contains one line the string S with length N (N <= 1000000) formed by lower case letters.

输出:

Output four integers separated by one space, lexicographically fisrt string’s Rank (if there are multiple answers, choose the smallest one), the string’s times in the N generated strings, lexicographically last string’s Rank (if there are multiple answers, choose the smallest one), and its times also.

样例输入:

abcder
aaaaaa
ababab

样例输出:

1 1 6 1
1 6 1 6
1 3 2 3

code:

题意:
输出所给字符串的最大最小表示的起始位置和数量
思路
数量我们可以利用KMP里的求next数组,然后再套用一下最大最小表示法的模板

#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
const int maxn=1e6+50;
char a[maxn];
char b[maxn];
int nexxt[maxn];
void init()
{
	int i=0,j=-1;
	int n=strlen(a);
	nexxt[0]=-1;
	while(i<n)
	{
		if(j==-1||a[i]==a[j])
		{
			i++;
			j++;
			nexxt[i]=j;
		}
		else j=nexxt[j];
	}
}
int getmin()
{
	int n=strlen(a);
	int i=0,j=1,k=0;
	while(i<n&&j<n&&k<n)
	{
		int tt=a[(i+k)%n]-a[(j+k)%n];
		if(tt==0)k++;
		else
		{
			if(tt>0)i+=k+1;
			else j+=k+1;
			if(i==j)j++;
			k=0;
		}
	}
	return min(i,j);
}
int getmax()
{
	int n=strlen(a);
	int i=0,j=1,k=0;
	while(i<n&&j<n&&k<n)
	{
		int tt=a[(i+k)%n]-a[(j+k)%n];
		if(tt==0)k++;
		else
		{
			if(tt>0)j+=k+1;
			else i+=k+1;
			if(i==j)j++;
			k=0;
		}
	}
	return min(i,j);
}
int main()
{
	while(scanf("%s",&a)!=EOF)
	{
		init();
		int n=strlen(a);
		int what=1;
		if(n%(n-nexxt[n])==0)what=n/(n-nexxt[n]);
		int minn=getmin();
		int maxx=getmax();
		printf("%d %d %d %d\n",minn+1,what,maxx+1,what);
	}
	return 0;
}
ECU诊断功能测试:从理论到实践 ECU诊断功能是指通过特定的诊断协议与ECU进行通信,以获取ECU的状态信息、故障码、数据流等,并执行特定的诊断操作。诊断功能的主要目的是帮助开发人员和维修人员快速定位和解决ECU中的问题,确保车辆的安全性和可靠性。UDS协议是ISO 14229标准的一部分,定义了一系列的诊断服务,如读取故障码、清除故障码、读取数据流等。UDS协议基于CAN(Controller Area Network)总线,具有较高的灵活性和扩展性。读取故障码是诊断功能中最基本的操作之一。通过读取故障码,可以快速定位ECU中的问题。 阅读详情

相关推荐

Proteus仿真实战:用AT89C51+L298N搭建直流电机PID调速系统(附完整工程文件)

本文详细介绍了使用Proteus仿真平台结合AT89C51单片机和L298N驱动模块搭建直流电机PID闭环调速系统的全过程。从硬件选型、电路连接到PID算法实现与参数整定,提供了完整的开发指南和工程文件,帮助读者快速掌握闭环调速系统的设计与调试技巧。

weixin_28724661的博客 448

字符串1——KMP,字符串最小表示法,AC自动机

KMP算法: 由于只有一个模式串,所以我们只需要充分利用这个模式串的信息即可 我们考虑一下对于一个匹配串,我们不妨设已经匹配到了模式串的第i个位置,且在匹配串的第j位,如果第i+1个位置不能匹配,那么我们如果用朴素的匹配思想的话是只能跳到第j-i+2为再一位一位去匹配 但是这样的我们并没有利用到该模式串的信息,也没有利用已经匹配那些字符的信息 所以我们就引入了一个东西叫做nxt数组,nxt...

psc233的博客 248

RobotStudio码垛机器人创建过程

首先导入一个IRB2600机器人,移动夹具的本地坐标原点,使原点位置为顶面中心(与法兰盘连接的部位)。对齐夹爪Smart组件的本地坐标和机器人末端法兰盘的坐标...

个人博客 1万+

KMP算法模板和做题总结,最小表示法(详细,易懂,有图)

文章目录 系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 一 KMP算法简述: KMP算法,又称模式匹配算法,能够在线性时间内判定字符串P[1~N]是否为S[1~M]的子串,并求出字符串A在字符串B中各次出现的位置。 二、next数组的含义及手动模拟 ​ 然后来说明一下next数组的含义:对next[ j ] ,是p[ 1, j ]串中前缀和后缀相同的最大长度(部分匹配值),即 p[ 1, next[ j ] ] =...

m0_64183293的博客 684

[数字电路]用与非门实现BCD译码器驱动数码管

Hello,大家好。这里是xdd_core,好久不见。今天来和大家聊聊大一数字电路课程的一个课设。# Key word:BCD Decoder,Proteus8.x,NAND Gate,Digital Circuit# 流程:Proteus8.x仿真电路并绘制PCB导出Gerber文件打样,最终实物验证。# 以下为我对这个课设的report(里面对整个设计做了详细介绍,并设计了完整的验证电路) 感谢观看,仅供参考,未经作者允许,禁止转载/抄袭,本文已上传至数据库,查重必挂QAQ BCD to 7-Segme

xddcore的博客 6012

Python爬虫案例:从39问医生网爬取口腔科的在线问答记录(单轮问答)

本次实验爬取39问医生网中口腔科分类下的所有在线单轮问答记录,每页32条,共100页,总数据量为3200条,最终结果以excel格式保存。

JieBao11的博客 1640

HDU 3374 String Problem

String Problem Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1233Accepted Submission(s): 550 Problem Description Give you a string with...

weixin_30653023的博客 153

BERT之提取特征向量 及 bert-as-server的使用

本文内容列表提取句向量1、句向量简介1-1传统句向量1-2、BERT句向量2、 extract_features.py源码分析2-1 main函数 前一篇文章 BERT介绍及中文文本相似度任务实践 简单介绍了使用BERT进行中文文本相似度计算的方法,这篇文章着重对特征提取方法进行讲述。 提取句向量 1、句向量简介 1-1传统句向量 更多采用word embedding的方式取加权平均,该方法的一大...

ling620的专栏 1万+

kmp&扩展kmp&manacher&最大最小表示法模板

kmp&扩展kmp&manacher&最大最小表示法模板

污miao汪的博客 513

复现论文《大规模风电场电磁暂态高效建模仿真方法》

本文提出了一种针对大规模风电场电磁暂态(EMT)仿真的高效建模方法。通过三种关键技术实现仿真加速:(1)永磁直驱风电机组一体化等效建模,采用节点导纳矩阵降维将25节点机组简化为4端子电路,仿真速度提升1-3个数量级;(2)基于戴维南/诺顿等效和OpenMP并行计算的风电场整体建模,通过串并联叠加实现节点收缩,30台机组仿真加速近万倍;(3)受控源映射解耦方法提高故障仿真灵活性。复现代码展示了核心算法实现,包括导纳矩阵Schur补降维、多进程并行计算框架以及受控源解耦方法。

huanghm88的专栏 279

SXU—软件测试方法和技术-朱少民-第三部分 软件测试方法大题汇总-附考点和相关习题及解答

软件测试方法和技术-朱少民-第三部分 软件测试方法—-最少测试用例个数,强一般弱一般强健壮、边界值分析、ns流程图、白盒逻辑覆盖代码、等价类划分,逻辑组合(条件)覆盖,计算圈复杂度等—附考点和相关习题及解答

weixin_63597914的博客 2211

KMP与最小表示法

最近在准备面试,偶尔会遇见y

oahsgnat的专栏 954

Python控制程控电源(USB)

随着智能电动汽车行业的持续发展,汽车电子或嵌入式设备在软硬件的测试中,都会使用程控电源供电,特别是自动化测试、压力测试场景必定使用到程控电源控制,控制电源上下电,监听电源电流、电压等,以下就以常见的艾德克斯程控电源为例,分享如何通过USB连接方式Python语言来控制程控电源。

测试领域技术分享 2865

hdu3374String Problem kmp+最大最小表示法

//给出一个序列,求其最大最小表示法的最小位置 //并且求出有多少这样的最小最大表示法 //对于次数,就是循环节的个数,用kmp就能求出来 #include #include #include #include using namespace std ; const int maxn = 1e6+10 ; string str

ijbuhv的专栏 585

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

String Problem(最大最小表示法 + KMP求个数)

Give you a string with length N, you can generate N strings by left shifts. For example let consider the string “SKYLONG”, we can generate seven strings: String Rank SKYLONG 1 KYLONGS 2 YLONGSK 3...

自渡的博客 385

Devexpress16.2.6破解工具

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

HDU 3374 String Problem(最大最小表示法+kmp)

Time Limit:1000MS Memory Limit:32768KBDescription Give you a string with length N, you can generate N strings by left shifts. For example let consider the string “SKYLONG”, we can generate seven s

2cm的专栏 490

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

String Problem 【kmp+最大最小表示法】

#include&lt;stdio.h&gt; #include&lt;string.h&gt; #include&lt;algorithm&gt; #include&lt;math.h&gt; #include&lt;map&gt; #include&lt;queue&gt; #include&lt;vector&gt; #include&lt;stack&gt; #defin

几许情愁的博客 487

HDU 3374 String Problem (KMP+最大最小表示法)

题意:输出目标字符串最小表示的下标和数量,最大表示的下标和数量 题解:最大最小表示法模板题,数量也好求,用KMP的next数组求循环节即可(字符串循环节) #include<cstring> #include<cstdio> using namespace std; const int maxn=1000010; char s[maxn]; in...

aomen8092的博客 166

String Problem HDU - 3374 KMP+字符串的最大最小表示法

做这个题前首先要明白字符串的最大最小表示法,我一开始也不会,看了题解也是一脸懵,附上一篇讲解字符串的最大最小表示法的博客链接(67条消息) 字符串处理 —— 最大最小表示法_Alex_McAvoy的博客-优快云博客,在这里感谢大佬指点迷津,orz 题意:每次给你一个字符串,如果字符串的长度为n,那你可以进行n次操作,每次操作都可以把一个字符从左边第一个移动到右边最后一个,因此你会得到n个字符串,问这n个字符串中字典序最小和最大的字符串排在第几个(如果有多个字典序最小或最大的字符串有多个,那么就.

weixin_54562114的博客 159

HDU3374 String Problem(kmp,最大最小表示法)

Problem Description Give you a string with length N, you can generate N strings by left shifts. For example let consider the string “SKYLONG”, we can generate seven strings: String Rank SKYLON

riba2534的博客 729

hdu3374 String Problem KMP+最大最小表示法

Give you a string with length N, you can generate N strings by left shifts. For example let consider the string “SKYLONG”, we can generate seven strings:String RankSKYLONG 1KYLONGS 2YLONGSK 3LONGSKY ...

weixin_33692284的博客 139

hdu 3374 String Problem(KMP+最大最小表示法)

Problem Description Give you a string with length N, you can generate N strings by left shifts. For example let consider the string “SKYLONG”, we can generate seven strings: String Rank SKYLONG 1 K

HJ 836

String Problem HDU - 3374 (最大最小表示法+kmp求模式次数)

题目链接 题目大意:给你一个字符串,求它所有同构串(末尾元素移1个到开头算一次同构)中,字典序最大以及最小的串出现的位置。 位置由题目定义:如给出 SKYLONG SKYLONG 1 KYLONGS 2 YLONGSK 3 LONGSKY 4 ONGSKYL 5 NGSKYLO 6 GSKYLON 7 很显然是一道最大最小表示法模板题。 思路就是先预处理字符串str,str=str+str;然后求出最大最小字符串起始点,分别用kmp算法求出其在str中的出现次数就好了(此时的str要去掉末尾字符,否则第一个

矮纸斜行闲作草 211

HDU——3374 String Problem (最大最小表示法+循环节+kmp)

Give you a string with length N, you can generate N strings by left shifts. For example let consider the string “SKYLONG”, we can generate seven strings:  String Rank  SKYLONG 1  KYLONGS 2  YLONGSK 3 ...

lgz0921的博客 308

HDU 3374String Problem(最大最小表示法+KMP)

String Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1292    Accepted Submission(s): 581 Problem Description Give you a s

布生气 2122

HDU 3374 String Problem(最大最小表示法模板+KMP+next数组的运用)

Give you a string with length N, you can generate N strings by left shifts. For example let consider the string “SKYLONG”, we can generate seven strings: String Rank SKYLONG 1 KYLONGS 2 YLONGSK 3 LONGSKY 4 ONGSKYL 5 NGSKYLO 6 GSKYLON 7 and lexicog

HJY 619
上一篇: Substrings
下一篇: How many
大橘为重eleven
博客等级 码龄8年 35粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值