hdu 4763 Theme Section(kmp)

用UltraISO制作镜像以RAW格式刻录系统到U盘后,在Windows上无法识别的解决办法 在这篇文章中,用UltraISO制作镜像后,会使得U盘无法识别!!!那么,如何抹掉U盘的数据,格式化U盘呢? 阅读详情

题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=4763

解题思路:

题目大意:

给你一个字符串,问你是否可以表示为“EAEBE”的形式,E、A、B表示一个字符串,可以为空,输出最长的E串的长度。

解题思路:

KMP,首先先求出最长后缀,然后用KMP算法判断去掉前后部分后是否存在该串,不存在则缩小长度,直到为0为止。。。

AC代码:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

const int maxn = 1000005;
int len,Next[maxn];
char str[maxn];

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

int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%s",str);
        len = strlen(str);
        getNext();
        int k = Next[len],ans = 0;
        while(k && !ans){
            int j = 0;
            for(int i = k; i < len-k; i++){
                if(j == k)
                    break;
                while(!(j==-1 || str[i]==str[j]))
                    j = Next[j];
                j++;
            }
            if(j == k)
                ans = k;
            k = Next[k];
        }
        printf("%d\n",ans);
    }
    return 0;
}



《SOC架构-ARM架构-文档导读》-目录 小白请看“Armv8/Armv9架构从入门到精通”专栏。以翻译为主的,深度深度深度深度/深入深入深入 学习ARM架构的文章。 阅读详情

相关推荐

基于51单片机扫地机器人(全套Proteus仿真+原理图+程序+说明书)

(内含源程序代码,原理图,仿真,讲解视频,元件清单等,【精品】值得推荐!!!扫地机器人是以单片机为主控制器。通过单片机控制小车行驶、除尘、蜂鸣。扫地机器人使用双电机驱动,以提高整车运动的平稳性;在智能车进驶过程中,采用双超声波模块实现避障。

2301_76434107的博客 1894

HDU4763 Theme Section 【KMP】

Theme Section Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1114    Accepted Submission(s): 579 Problem Description It's time for

长风的专栏 1370

React 源码解析 | Reconcile协调过程

上篇讲了React的工作流程,这篇详细的讲一下render过程中的beginWork函数,也就是深度优先创建Fiber树中"递"的过程。beginWork函数传入当前已经创建好的Fiber节点,返回创建/复用的第一个子FIber节点,也就是wip.child在renderRoot中,在开始创建整棵FIber树之前,会先调用prepareRefreshStack创建/复用一个新的HostRootFiber。

weixin_40710412的博客 1219

hdu 4763 Theme Section(KMP)

题目链接:  hdu 4763 题目大意:  找出字符串的最长子串,这个子串满足既是前缀和后缀,并且在中间会出现 解题思路:  不妨先找出所有前缀等于后缀的子串长度(poj 2752 解题报告)                    从长到短(长度不大于主串的1/3)枚举子串的长度                   前缀等于后缀的子串长度为ans[ i ]            

ンZee的解题报告 1216

一文说清Arduino如何实现舵机平滑转动(机器人场景)

深入讲解如何利用arduino控制舵机转动,实现机器人场景中的平稳运动。通过代码优化与脉冲宽度调节,让舵机动作更精准流畅,适用于各类自动化项目。

weixin_35706255的博客 897

redhawk-sc(seascape)学习日志2

design view是主view,是所有seascape view中最root的部分,一个design view可以驱动多种类型分析比如静态IR drop,动态IR drop以及EM.这些分析可以在不同的PVT和翻转率下.Design view是一个必须的view对于redhawk中的任何类型分析来说。seascape view相当于一个容器,用于保存各种和设计相关的数据,类似于逻辑信息、物理信息等等,每个view都有其对应的输入件和依赖,这些view都是redhawk用于各种类型的分析所需。

qq_39493558的博客 3497

HDU4763 Theme Section(KMP)

题目链接:hdu4763 题面 题目大意 找到字符串中的最长公共前后缀,并且这个前后缀的字串在除了前后缀的中间部分也要存在这个子串。例如:EAEBE,其中,E 表示这个子串,输出 E 的最大长度,如果不存在输出 0 。 解题思路 KMP 利用求失配函数得到串的最长公共前后缀,然后从 2i 的位置到 len-i 的位置开始枚举中间是否存在子串,判断条件是: fail[j]==ifail[j]==ifail[j]==i。含义是失配指针能够索引到公共前缀后一个位置,然后从 j 位置到达 i 表示 0 - j

小胡同的诗 304

解锁VS2022!手把手教你本地部署Deepseek

在 VS2022 中本地部署 Deepseek,我们首先需要确保硬件资源的充足,如高性能的 GPU、大容量内存和高速存储等,这是模型稳定运行的基石。如果生成的摘要能够准确概括原文的核心内容,就表明 Deepseek 模型在文本分析方面的功能正常,部署稳定可靠。这对于开发者来说,能够大大提高开发效率,当遇到一些常见的功能实现时,可以借助 Deepseek 模型快速生成基础代码框架,减少手动编写的工作量。在大语言模型的蓬勃发展的当下,Deepseek 凭借其卓越的性能和创新的技术,已然成为该领域的佼佼者。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1万+

Hdu 4763 Theme Section KMP

Theme Section Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3667    Accepted Submission(s): 1721 Problem Description It's time fo

J. Cole 440

深度解构事务码 SQF:Support Query Framework 与 ABAP 静态分析实战

某制造企业在年度审计前,需要确认自定义发票过账程序 ZFI_INV* 系列是否存在硬编码公司代码与未捕获异常。技术团队在字段填入ZFI_INV*后,勾选与规则,执行扫描。SQF 生成的 ALV 报告列出 42 个警告,其中 17 条与抛出 CX_SY_NO_HANDLER 相关,8 条涉及动态 SQL 注入风险。结果导出至 Excel 供开发整改,并在 ATC 阶段验证修复。此过程较手工逐个执行 Code Inspector 节省超 80 % 时间。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 215

使用 MATLAB/Simulink 构建一个多时间尺度下的微电网经济运行优化策略模型

本文介绍了基于Simulink的多能互补微电网系统建模方法,重点关注多时间尺度下的经济运行优化策略。内容包括:系统背景与目标、微电网结构设计(光伏、风电、储能、柴油发电机等模块)、多时间尺度能量管理架构(日前优化、日内滚动优化、实时控制)的实现步骤,以及仿真运行与结果分析。教程详细说明了如何在Simulink中调用优化算法,设置仿真参数,并提供了进阶研究方向和资源推荐。该模型为研究微电网的经济运行和智能调度提供了完整的仿真平台解决方案。

amy_mhd的博客 170

HDU 4763 Theme Section(KMP)

【链接】http://acm.hdu.edu.cn/showproblem.php?pid=4763 【题意】给个字符串,求满足形如“E...E...E”这种鬼样子的E串最大长度,其中“...”可以是任意个数的任意字符(没有也ok),但是三个E之间不能重叠 【思路】 无视中间那个“E”的话,其实是在求前后缀相同的最大缀长 回头看一眼刚刚写完的poj 2752,终于知道为什么搜题解的

无色城 956

Python图像处理之光斑分析

光斑是工程中经常出现的图像数据,其特点是目标明确,分布清晰。对光斑图像的分析,主要包括质心定位、目标截取以及半径拟合等。

微小冷的学习笔记 2856

HDU4763 Theme Section KMP

HDU4763 Theme Section KMP 字符串满足EAEBE,E为相同的前后缀,只需在中间找出另一个E即可 利用nxt数组的性质,找出E即可 /*KMP字符串匹配 next[i]记录1~i中相同前后缀长度-1 即相同字符下标位置 171MS 6108K */ #include &lt;stdio.h&gt; #include &lt;string.h&gt; const int...

Qianyri的博客 323

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

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

hdu4763 Theme Section KMP

给一个字符串S,问是否存在一个子串s'同时为s的前缀,后缀,并且至少出现在前缀后缀之外的位置一次(互不重叠)。10^6的数据...一开始想写后缀数组,看这数据估计是要卡倍增,DC3又没写过..后来想了想直接KMP扫一遍好像就行..以末尾为起点,遍历从失配路径上的每一个点,如果f[j]小于len/3,那么就从2*f[j]+1~len-f[len] 之间枚举k看是否存在f[k]==f[j],存在的话答

Broken Wings 736

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

HDU 4763 Theme Section(KMP)

题目链接:点击打开链接 题意:给你一个字符串s, 要你求是否存在一个子串, 在s的前中后各出现一次。 求最大可能的子串长度。 思路:KMP变形, 我们首先要了解KMP的运行机制。  核心是失配函数f, f[i]表示在i点失配之后返回到f[i]这个点, 且能保证f[i]之前的部分和模板串匹配。  这样的话, 我们就可以利用这个特点来处理该题了。 我们假设在最后一个字符处失配, 那么它将返回f[l

AC_Arthur的专栏 1189

Theme Section HDU - 4763(kmp )

Theme Section HDU - 4763 题意: 给你一个字符串s。 要求你找到最长的前缀&&中缀&&后缀。 思路: 可以对串s求next 假如nxt【len】x 3 >len.(那么说明太长了,要缩短) 可以len=nxt【len】。 之后贪心的找就可以了。把s按照长度next【len】切割成 三部分。 (nxt【len】+(len-nxt【len】-nxt【len】)+nxt【len】) 对长度为nxt【len】的字符串,再求一次next2. 把它与中间

qq_45377553的博客 163

hdu 4763 Theme Section kmp

这个next[i]表示的就是最长前后缀,那么头和尾的就不next就可以得出了 那么就剩下判断中间是否存在了,中间的只要不重叠的那部分存在一个next[j]大于的就可以了。 中间的部分是不断扩大的,那么就头尾不断next,中间不断更新新加入的节点即可。 #include #include #include using namespace std; const int maxn=1e6+9

yrleep的专栏 1059

hdu 4763 Theme Section (扩展kmp)

hdu 4763 Theme Section (扩展kmp) 题目大意:给出一个字符串,问这个字符串的最长Theme Section是多长,Theme Section要符合以下条件,必须出现在字符串的开头,结尾,和中间,而且不能有重叠。 很抱歉,之前写了个很挫o(nlogn)的解法,误导了大家,后来我仔细想了想,其实用扩展kmp可以o(n)的实现。下面给出具体的实现方法: 解题思路:还是

No__stop 2183

扩展kmp -- Theme Section HDU - 4763

Theme Section HDU - 4763 题意: T次询问,每次给你一个字符串s(|s| <= 1e6),找到一个最长的子串,出现在s的串首、串中、串尾位置,互不重叠。输出这个子串的长度。 思路: 先用扩展kmp处理出s每位s[i]开头的的子串与前缀的最大长度,保存在nxt数组中,从尾部开始遍历nxt数组,如果i + nxt[i] = |s|(s的长度),则说明检索出了串首、串尾的两个子串,那再检索串中的子串是否存在,并在检索的过程中保证串首、串中、串尾的子串互不重叠。 code: #incl

dajiangyou123456的博客 342

HDU 4763 Theme Section (KMP)

先KMP求出f数组。 然后令j等于f[len],在j沿着失配边走到0的路径上(即一直j=f[j]),每个节点都代表了一对相同的前后缀,且长度为f[j]。 这些对前后缀都可能是答案子串,再用kmp算法在中间找这个子串存不存在即可。 注意,子串长度会越来越小,而且一定包含于之前判断过的子串中(因为起点一样)。所以若前一个子串在l到r区间不存在,那么下一个子串也一定不存在。这样记录已扫描区

Baoli1008的专栏 499

HDU 4763 Theme Section(kmp)

Time Limit:1000MS Memory Limit:32768KBDescription It’s time for music! A lot of popular musicians are invited to join us in the music festival. Each of them will play one of their representative s

2cm的专栏 377

Theme Section HDU - 4763(KMP)

题意 比如现在有个字符串A是ab,我们有个字符串B是E,我们要进行字符串拼接为EaEbE记为字符串C,现在的问题是已经知道字符串C问你B字符串的最大长度是多少 思路 很容易想到KMP的next数组,记len为字符串长度,如果k=next[len](因为next数组是右移动一位,所以是next[len]),2*k<len那么说明前后在已经相同,我们只要在去掉前后缀的字符串中用KMP看是否...

leekerian的博客 273

HDU 4763 Theme Section ( KMP )

题意 :现有一字符串S,要求在S中找到最长的子串E,使得S满足格式“EAEBE”,其中A,B可以为任意的S子串。也就是说子串E既是S的前缀也是S的后缀,同时还在S中间出现,但不与前缀E与后缀E重叠。 分析 : 使用KMP的Next数组的特点,我们能够找出字符串所有相同的前后缀,即递推 Next[ Next[ Next[ ... ] ] ] ,找到之后便只要截取字符串再去跑一遍...

162

HDU 4763 - Theme Section(KMP)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4763 题目描述:   现有一字符串S,要求在S中找到最长的子串E,使得S满足格式“EAEBE”,其中A,B可以为任意的S子串。也就是说子串E既是S的前缀也是S的后缀,同时还在S中间出现,但不与前缀E与后缀E重叠。 解题思路:   学习KMP的第一道题。KMP的详解这篇...

ayg046002的博客 139
上一篇: hdu 4737 A Bit Fun(TwoPointer)
下一篇: hdu 4707 Pet(深搜)
yphacker
博客等级 码龄12年 199粉丝 540原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值