Hotaru's problem超详细解释(hdu5371+Manacher)

Qoder CN 完全指南:阿里云AI智能体的全景拆解 阿里云旗下AI编程助手"通义灵码"于2026年5月20日升级为QoderCN,转型为覆盖软件开发与办公场景的AI智能体产品矩阵。该平台具备四大核心能力:代码补全、智能问答、文件编辑和智能体模式,支持GLM、DeepSeek等多模型切换。特色功能包括Quest2.0任务委派、专家团协作和记忆感知,满足金融、政务等行业的合规需求。产品形态涵盖IDE插件、CLI工具、办公助手和数字员工,形成"全家桶"式解决方案。相比Cursor等海外产品,QoderCN更注重全链路覆盖,个 阅读详情

详细解释看代码注释和题解报告
题解报告

AC code:

#include<iostream>
#include<string>
#include<vector>
#include<cstring> 
#include<algorithm>
using namespace std;
const int maxn = 1e5 + 10;
int data[maxn],p[2*maxn];
int len = 0;
void Manacher(){
    int t[maxn*2];
    t[0] = 0,t[1] = -1;
    for(int i = 1;i <= len;++i){
        t[2*i] = data[i];
        t[2*i+1] = -1;
    }
    t[2*len+2] = -2;//小心,之前都忘记加了,因为字符串以\0结尾所以可以不加,但数组头尾加不一样的标记

    int mx = 0,id = 0;
    memset(p,0,sizeof(p));
    int size = 2 * len + 1;
    for(int i = 1;i <= size;++i){
        p[i] = mx > i? min(p[2*id-i] , mx - i) : 1;
        while(t[i + p[i] ] == t[ i - p[i]]){
            ++p[i];
        }
        if(i + p[i] > mx){
            mx = i + p[i];
            id = i; 
        }
    }
}
int main(){
    int T = 0,kase = 0;
    //cin >> T;
    scanf("%d",&T);
    while(T--){
        //cin >> len;
        scanf("%d",&len);
        for(int i = 1;i <= len;++i ){
            //cin >> data[i];
            scanf("%d",&data[i]);
        }
        Manacher();
        /*
        for(int i = 1;i <= len*2+1;++i){
            cout << " " << p[i] - 1;
        } 
        cout << endl;
         */
        int ans = 0;
        for(int i = 1;i <= 2*len+1;i += 2){//要从1开始,因为回文串长度可能是偶数 
        //添加修饰就是化偶数为奇数 ,还有一个隐含条件就是,所求的回文串都是偶数,
        //所以只需要在标记上做文章就行了 
            //cout << "em " << p[i] - 1 << endl;
            for(int j =  i+ p[i] - 1;j - i > ans;j -= 2){
            //从最远处遍历,因为可能两个回文串只有一部分重叠,比如2212122 122
            //2212122 与22122,第一个回文串只贡献了22,实际上它的一半有4个,
            //第二个22 ,这就是解题报告中所说的 
                if(j - i + 1 <= p[j]){//共有长度小于第二个的回文串长度 
                    ans = max( ans , j - i);
                    break;
                }
            }

        }
        //cout << "Case #" << ++kase << ": " << ans / 2 * 3 << endl;
        printf("Case #%d: %d\n",++kase,ans / 2 * 3);//答案是原来的3/2 
    }

    return 0;
}
QGIS004:【05矢量属性表】-保留字段、删除字段、添加唯一值索引字段、添加字段到属性表、添加自增量字段、添加XY字段到图层、文本型转浮点型、重构字段、重命名字段 摘要:QGIS矢量属性表工具箱包括保留字段、删除字段、添加唯一值索引字段、添加字段到属性表、添加自增量字段、添加XY字段到图层、文本型转浮点型、重构字段、重命名字段等选项,本文介绍各选项的基本操作。 阅读详情

相关推荐

Shopee商品详情页反爬实战:手把手逆向x-sap-Ri和x-sap-Sec参数(附完整调试过程)

本文详细解析了Shopee商品详情页反爬机制中的x-sap-Ri和x-sap-Sec参数逆向过程。通过JS逆向技术,从环境数据采集到多层哈希运算,完整拆解了这两个关键参数的生成逻辑,并提供了实战技巧和Node.js实现方案,帮助开发者应对Shopee的动态加密挑战。

weixin_33701251的博客 1595

hdu5371_Hotaru's problem_Manacher

Hotaru's problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 3479    Accepted Submission(s): 1144 Problem Description Hotaru Ichijo

no2015214099的博客 460

信息流广告ROI线性预测看板&投放分析监控看板展示&数据处理入库全流程

此看板数据量太大,在tableau public部署运行速度极慢,因此用图片作展示 数据清洗

Larry_Westside的博客 2316

hdu5371 Hotaru's problem(manacher 算法+枚举)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5371 题目大意:给一串数字,在子串中找到“1-2-1”的形式,其中1和2 是回文串,找出最长的那一串。 思路:利用manacher算法得出最长序列。观察子串形式,1和2是回文串,其实2和后面那个1也是回文串。 在之前我们已经通过manacher算法得到了每个数字所能延伸的长度,所以我们只要枚举第

hahahaha 717

ESD放电路径分析

当金属外壳接地情况下,大部分外部干扰信号将会通过外壳,外壳到接地点,再由接地点回到干扰信号的地,实现干扰信号的回流,这点不仅仅适用于​ESD,对于其他的RI类干扰,也同样适合。发现内部金属板跟外壳的搭接处存在较多的缝隙点,该缝隙点对于频率较高的信号能够实现较为理想的回流,但是对于频率没有那么高的信号,则较难以实现回流,我们尝试将这些缝隙用铜箔包裹住,充分降低该金属板跟外壳的接触阻抗​。我们分析,路径3其实是不期望的路径,我们最期望的路径是1,或者2的内部金属部件跟外壳良好接触情况下的路径。

domen_pan的博客 2226

Token算力工厂建设方案:从GPU集群到计量计费的全链路设计

在AI应用从“租核”走向“买Token”的范式转换中,算力交付的核心指标已不再是vCPU或GPU实例,而是单位时间内的Token产出量与单Token成本。这一变化推动基础设施从资源租赁向计件生产演进,要求GPU集群、推理引擎、调度系统、计量计费等模块像工厂产线一样协同运转。本文从硬件异构混部、存储网络设计、推理引擎调优、Token网关与配额管理、稳定性治理等维度,系统拆解如何构建一座可量化、可计费、可扩展的Token算力工厂,并给出分三期落地的推进节奏,帮助架构师与技术管理者在AI基础设施建设中实现成本可控

weixin_29095587的博客 261

hdu 5371 Hotaru's problem (Manacher算法)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5371 题意:在输入的串里面找的一个连续的串,这个串由三部分组成且长度相等,第一部分s1与第二部分s2组成的串回文,第一部分s1与第三部分s3相同。 分析:由题可知,s1s2回文,s2s3回文。这里需要用Manacher算法处理出以每个位置为中心的最大回文半径。然后暴力枚举s1与s2交接处,判断是否存在

w20810的专栏 800

ESP32脑机接口开发板:EEG信号采集与应用开发指南

脑机接口(BCI)技术通过采集脑电图(EEG)信号实现人机交互,其核心在于高精度生物电信号采集与实时处理。基于ESP32微控制器的开发平台结合专业级ADS1299 ADC芯片,可构建8通道EEG信号采集系统,支持250SPS采样率与可编程增益。这种嵌入式解决方案在科研教育领域具有显著优势,既能满足信号质量要求,又大幅降低开发门槛。典型应用包括实时脑电波可视化、注意力检测等BCI场景,通过Python生态工具链(如BrainFlow、LSL)可快速实现数据处理。开发时需注意电极阻抗控制(<10kΩ)和50/6

weixin_42518874的博客 343

HDU-5371 Manacher+线段树维护

Hotaru's problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 3123    Accepted Submission(s): 1057 Problem Description Hotaru Ic

AC_Machine的博客 536

麒麟信安3.3-6C电网版虚拟机安装避坑指南:从ISO下载到SSH配置全流程

本文提供麒麟信安3.3-6C电网版虚拟机的详细安装与配置指南。针对电力行业仿真测试需求,重点解析从ISO镜像获取、虚拟机环境准备、安装过程中的三大“雷区”(如多管理员密码逻辑、分区方案、网络配置)到首次启动后的网络、SSH及root策略配置的全流程避坑要点,帮助技术人员高效、安全地完成部署。

rainy的博客 853

华为OD机试2025C卷 - CPU调度策略 (C++ & Python & JAVA & JS & GO)

华为OD机试 2025C卷 CPU调度策略,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 1295

Hotaru's problem(hdu5371+Manacher)多校7

Hotaru's problem Problem Description Hotaru Ichijou recently is addicated to math problems. Now she is playing with N-sequence. Let's define N-sequence, which is composed with three parts and satisfied with the following condition: 1. the first part is the

寻找&星空の孩子 1156

ISOLAR Autosar BSW 配置 之 Com

Autosar ISOLAR Bsw Configuration 之 Com

qq_42262743的博客 452

HDU 5371 Hotaru's problem(manacher + 枚举)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5371Problem DescriptionHotaru Ichijou recently is addicated to math problems. Now she is playing with N-sequence.Let's define N-sequence, which is compos...

1302

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Hotaru's problem HDU - 5371(manacher)

Hotaru Ichijou recently is addicated to math problems. Now she is playing with N-sequence. Let’s define N-sequence, which is composed with three parts and satisfied with the following condition: the ...

tomjobs的博客 561

SAP B1中文培訓教材_SDK

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

HDU 5371 Hotaru's problem

题意:给你一串数字,要你找到这里面最大的N-序列的长度。N序列满足下面两个条件:1、第一部分与第三部分相同;  2、第一部分与第三部分对称;例如:2,3,4,4,3,2,2,3,4 就是一个N-序列。通过观察,我们知道N序列包含两个回文序列,上面的例子中2,3,4,4,3,2和4,3,2,2,3,4 两个回文。由于题目中给的数据量比较大,所以暴力肯定超时。所以用到了处理回文序列的Manacher算

对立统一 513

Devexpress16.2.6破解工具

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

hdu 5371 Hotaru's problem

#pragma comment(linker, "/STACK:102400000,102400000") #include #include #include #include #include #include using namespace std; const int M = (1 << 17); const int mod = 1e9 + 7; int n; vecto

思维迷宫 749

HDU 5371 Hotaru's problem (manacher+线段树)

题意: 假设对于字符串A,它的反串为A'。 给出一个字符串,找出形式为AA'A的最长串的长度。 思路: 先用manacher跑一边,得到对于每一个位置i,以i为中心回文串的长度Mp[i] 以回文串AA'的中心i1为圆心,以AA'的半径Mp[i1]为半径,做圆O1        以回文串A'A的中心i2为圆心,以A'A的半径Mp[i2]为半径,做圆O2 若要满足连续的AA'A 必有

DT2131 486

hdu 5371 Hotaru's problem manacher + 线段树

题意:找出一段最长的子串分成三部分abc,其中ab为回文串,ac相等(可得bc也是回文串) 这里将分割abc的两个点分别看成第一分割点x和第二分割点y,那么用manacher求出每个点为中心的最长分割点之后,对于第一ab这个回文串,可以知道的是它的长度为偶数,第一分割点为其中间的那个位置,再来看第二分割点的位置,由manecher的性质知道,假如有这么一段子串(abcd随便表示数字,并不一定相同

uuuuuu 694

HDU 5371 Hotaru's problem Manacher + set维护

题目大意: 就是现在给出一个长度为N 大致思路: 很常见的一个Manacher + Set维护的类型的题.... 首先用Manacher处理出每个位置为中心的回文半径 然后从左往右扫, 每次对于当前位置 i, 其半径覆盖到的最右位置 (i, i + R[i] - 1)添加到set里(作为左中心) 那么对于位置i, 要使其作为右中心的话, 左中心的最右覆盖位置必须能覆盖到这个位

Gatevin的专栏 759

HDU 5371 Hotaru's problem(Manacher算法+贪心)

2015多校联合训练7 1003

GODSPEED 1027

【HDU5371】Hotaru's problem(Manacher + set)

利用Manacher求出每两个数字中间位置的回文长度 之后利用set进行维护,大题思路如下: 要满足题目所要求的内容,需要使得两个相邻的回文串,共享中间的一部分,比如上边的两个字符串,共享 8 9 10这一部分。 也就是说,左边的回文串长度的一半,要大于等于共享部分的长度,右边回文串也是一样。 因为我们已经记录下来以第i个点和第i+1个点为中心的回文串长度, 那么问题可以转化成,相距x

花月阁 883

hdu 5371 Hotaru's problem(manacher+尺取法)

题意: 给定一个有n个数字的序列,找出一个连续的子序列满足这样的条件: 1. 平均分成三段 2. 第一段与第三段一样 3. 第二段是第一段的倒序。求这样的子序列的最大长度。 数据范围:n~100000 解析: 我看网络上面很多的题解都是用O(n2/32)O(n^2/32)的做法水数据过去的,这种做法是先用mancher算法预处理出每个每个回文串最远所能抵达的位置,然后

小G的ACM之路 917

Manacher算法(Hotaru's problem,HDU 5371)

学习了Manacher算法 Manacher算法的介绍: https://segmentfault.com/a/1190000003914228 Manacher算法的例题: https://vjudge.net/problem/HDU-3068 例题代码 #include #include #include using namespace std; const

xl2015190026的博客 336

HDU5371——Manacher+set维护——Hotaru's problem

http://acm.hdu.edu.cn/showproblem.php?pid=5371 /* 先用Manacher算法得出最长回文子串,然后用set维护ans的值 对所有回文的长度进行排序, 那么之后的点如果覆盖了最接近的点那么那么点肯定是覆盖了当前点,用二分得到最近不大于u的距离 S.upper_bound(id+u) 从起始到末尾得到第一个大于id+u的迭代器, ...

dgjm4087的博客 143

hdu5371 Hotaru's problem (Manacher)

/*像我这种菜鸡果然还是要写写博客,不然有的题目真是过去就过去了的状态。自己在硬盘里的代码也不太好管理,等以后写个软件来搞就好了 -  - */ 题意: 给出一个串,找出满足以下条件的最长子串: 1. the first part is the same as the thrid part, 第一个部分和第三个部分一样。 2. the first part and the second

Code of Duty 576
上一篇: Hidden Password -(超详细解释)字符串最小表示法 O(n)算法
下一篇: String Problem HDU - 3374(字符串的最大最小表示 + kmp求循环节)
Mavis code
博客等级 码龄9年 13粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值