吉哥系列故事——完美队形II-(Manacher算法)

同花顺自动化交易避坑指南:pywinauto实战中验证码识别与界面弹窗处理 本文深入探讨同花顺自动化交易中的关键稳定性问题,重点解决验证码识别与弹窗处理两大难题。通过优化Tesseract OCR、整合打码平台API以及设计pywinauto弹窗监控体系,提供了一套完整的自动化交易解决方案,帮助交易者有效规避资金账户和持仓信息操作中的常见陷阱。 阅读详情
题目链接:点击进入
题目

在这里插入图片描述

题意

求最长回文子序列,同时要求这个回文子序列从中间向两边非严格递减

思路

Manacher算法,在预处理的时候需要用不会影响题目的数字(负数和0等)来组成新的序列。
同时扩展回文子序列时需要多一句 str[i-p[i]]<=str[i-p[i]+2] 来保证从中点向两边非严格递减
(+2是因为相邻的数是预处理时添加的负数或0,不会影响原串的回文判定)

代码
#include<iostream>
#include<string>
#include<map>
//#include<unordered_map>
#include<queue>
#include<cstdio>
#include<vector>
#include<cstring>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<fstream>
#include<stack>
#define X first
#define Y second
#define INF 0x3f3f3f3f
#define P pair<int,int>
using namespace std;
typedef long long ll;
const double eps=0.01;
const int N=1010;
const int maxn=1e6+10;
const int mod=1000000007;
int t,n,p[maxn],cnt,len;
int str[maxn],s[maxn];
void Manacher()
{
    int l=0;
    str[l++]=-1;
    str[l++]=0;
    for(int i=0;i<len;i++)
	{
        str[l++]=s[i];
        str[l++]=0;
    }
    int mx=0,di=0;
    for(int i=0;i<l;i++)
	{
		if(i<mx) p[i]=min(p[2*di-i],mx-i);//i 在最远回文距离之内
		else p[i]=1;					  //i 在最远回文距离之外
		//左端点为'$',右端点为'\0',不需要边界判断
        //更新最大半径
        while(str[i+p[i]]==str[i-p[i]]&&str[i-p[i]]<=str[i-p[i]+2]) p[i]++;
        //如果最远半径增大,更新半径边界
        if(i+p[i]>mx)
		{
            mx=p[i]+i;
            di=i;
        }
    } 
}
int main()
{
	scanf("%d",&t);
    while(t--)
	{
		scanf("%d",&n);
        for(int i=0;i<n;i++)
        	scanf("%d",&s[i]);
        len=n;Manacher();
        int ans=0;
        for(int i=0;i<2*len+4;i++)
            ans=max(ans,p[i]-1);
        printf("%d\n",ans);
    }
    return 0;
}
【verilog语法详解:从入门到精通】 Verilog语法详解:从入门到精通 摘要:本文系统讲解Verilog硬件描述语言的核心语法与应用。Verilog作为数字电路设计标准,具有并行执行、硬件映射和层次化三大特点。文章从基础语法框架入手,详细介绍了模块定义、端口类型(input/output/inout)声明规范,以及线网型(wire)和寄存器型(reg)两种核心数据类型的区别与应用场景。重点讲解了组合逻辑(assign连续赋值)和时序逻辑(always块)的实现方式,包括阻塞赋值(=)与非阻塞赋值(<=)的关键差异。此外,还涵盖了参数( 阅读详情

相关推荐

农业AI避坑指南:用YOLO11做叶片病害检测时遇到的5个典型问题

本文分享了使用YOLO11模型进行农业叶片病害检测时常见的五个典型问题及解决方案。针对田间多变光照、病害样本不均衡、标注歧义、背景干扰和边缘部署等挑战,提供了包括场景自适应数据增强、解耦训练、软标签与鲁棒损失函数、困难负样本构建以及模型轻量化部署在内的实战经验,旨在帮助开发者提升农业AI项目的落地效果。

ujm56789012的博客 205

HDU 4513 吉哥系列故事——完美队形II (Manacher变形)

题意:假设有n个人按顺序的身高分别是h[1], h[2] ... h[n],从中挑出一些人形成一个新的队形,新的队形若满足以下要求,则就是新的完美队形:  1、连续的  2、形成回文串  3、从左到中间那个人,身高需保证不下降    问有组成完美队形的最多人数 题解:Manacher算法的变形。 首先我们来解释一下Manacher算法:在我看来就是一个优化的暴力。 我们首先统一奇偶...

weixin_33974433的博客 208

ANSYS ACT插件开发实战指南:从IronPython脚本到XML界面设计

本文提供了一份详尽的ANSYS ACT插件开发实战指南,重点讲解如何利用IronPython脚本实现仿真自动化,并通过XML设计用户友好的向导界面。内容涵盖从环境搭建、脚本编写(如自动创建材料)、界面控件绑定到调试打包的全流程,旨在帮助仿真工程师和团队负责人将重复性工作流程标准化,显著提升ANSYS软件的使用效率。

weixin_29310605的博客 452

吉哥系列故事――完美队形II(HDU-4513)

Problem Description 吉哥又想出了一个新的完美队形游戏!   假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] ... h[n],吉哥希望从中挑出一些人,让这些人形成一个新的队形,新的队形若满足以下三点要求,则就是新的完美队形:   1、挑出的人保持原队形的相对顺序不变,且必须都是在原队形中连续的;   2、左右对称,假设有m个人形成新的队形,则第...

Alex_McAvoy的博客 585

滤波算法-呼吸心跳信号检测方法(四)

呼吸心跳信号检测系列文章:信号滤波处理

yjh_2019的博客 6269

Windows11家庭版开启虚拟化与WSL安装操作手册

Windows 11 家庭版完全支持 WSL 2,无需升级到专业版即可享受 Linux 开发环境。通过本手册介绍的步骤,您可以顺利安装和配置 WSL,并掌握系统更新后的维护技巧。WSL 为开发者提供了在 Windows 环境下使用 Linux 工具链的便利,尤其适合需要跨平台开发的场景。随着使用深入,您会发现 WSL 生态系统的强大之处,它不仅能提高开发效率,还能让 Windows 用户体验到 Linux 的强大功能。建议定期查看微软官方文档,了解 WSL 的最新功能和最佳实践。

m0_54846764的博客 3022

HDU 4512 吉哥系列故事——完美队形I

题目链接~~> 做题感悟:这题在学习了LCIS后才做的,正好用于练手。 解题思路:依次枚举每个点,分成两段,得记录一下最长的最大值是否比最后一个元素小。 代码: #include #include #include #include #include #include #include #include #include #include using namespace std ; con

Muti-Agent 1873

Elsevier投稿实战:从ESWA模板到录用通知的全流程拆解

本文详细拆解了Elsevier旗下期刊ESWA(Expert Systems With Applications)的投稿全流程,从模板选择、投稿系统操作到审稿意见回复和录用后注意事项。重点分享了单栏LaTeX模板调整、APA文献格式处理、Highlights撰写技巧等实战经验,帮助研究者高效完成投稿并提升录用概率。

weixin_32715349的博客 238

B - 吉哥系列故事――完美队形II

吉哥又想出了一个新的完美队形游戏!   假设有n个人按顺序站在他的面前,他们的身高分别是h1 1, h2 2 ... hn n,吉哥希望从中挑出一些人,让这些人形成一个新的队形,新的队形若满足以下三点要求,则就是新的完美队形:   1、挑出的人保持原队形的相对顺序不变,且必须都是在原队形中连续的;   2、左右对称,假设有m个人形成新的队形,则第1个人和第m个人身高相同,

扬帆起航 370

从零开始做对容量规划:一文讲透 SAP Greenfield sizing 与 Quick Sizer 落地方法

摘要 SAP项目早期硬件规划面临业务细节缺失的挑战,Greenfield sizing方法通过Quick Sizer工具将业务需求转化为硬件资源需求。该方法聚焦主要负载驱动因素而非精确预测,采用标准化问卷形式输入并发用户数、业务处理量等参数,输出内存、CPU等资源需求。关键步骤包括选择正确的Quick Sizer版本、创建sizing项目、参考SAP基准测试和认证目录校准结果,最终将需求交由硬件厂商落地。该方法特别适用于缺乏历史数据的新系统部署,帮助在不确定性中建立可控的容量规划模型,避免资源浪费或性能不足

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

CGAL 网格等高线计算

CGAL 网格等高线计算

dayuhaitang1的博客 450

Longest Palindromic Substring 算法总结

Longest Palindromic Substring 即寻找一个字符串的最长回文子串,这个问题是leetcode上面的一个题目,刚开始自己做的时候用了一个可能是效率最低的方法去实现,但是由于leetcode的代码提交时会评价代码的执行效率,因此,这种实现没能通过。仔细看一下代码的时间复杂度几乎是O(n³),所以慢是很自然的。下面是这个算法的实现:string longestPalindrome

Huoon的博客 679

学习STM32的CAN总线通信

在配置时,确保您启用了CAN总线功能。CAN节点是CAN总线上的一个设备,每个节点都有唯一的标识符。在CAN总线中,有两种类型的节点:CAN控制器和CAN外设。步骤2:配置CAN总线 在STM32CubeMX中,选择CAN总线模块并进行必要的配置。在CAN总线中,有两个重要的概念:CAN节点和CAN帧。步骤5:测试CAN总线通信 在成功编译和烧录代码后,您可以使用串口调试助手或其他CAN总线工具来测试CAN总线通信。步骤3:编写CAN总线通信代码 在项目的主代码文件中,我们将编写CAN总线通信的示例代码。

2401_85258012的博客 496

吉哥系列故事——完美队形II ——Manacher算法

题意: 吉哥又想出了一个新的完美队形游戏!    假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] ... h[n],吉哥希望从中挑出一些人,让这些人形成一个新的队形,新的队形若满足以下三点要求,则就是新的完美队形:    1、挑出的人保持原队形的相对顺序不变,且必须都是在原队形中连续的;   2、左右对称,假设有m个人形成新的队形,则第1个人和第m个人身高相同,第2个人和第...

AAAAAAAC的博客 456

Devexpress16.2.6破解工具

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

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

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

吉哥系列故事——完美队形II manacher算法

hdu4513 题意求满足条件的最大回文子串长。 对回文子串的限制条件可在while中添加修改。 #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> using namespace std; const int maxn = 1e6+100; i...

__surtr的博客 150

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

吉哥系列故事——完美队形II——Manacher算法处理数字数组

吉哥又想出了一个新的完美队形游戏!   假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] … h[n],吉哥希望从中挑出一些人,让这些人形成一个新的队形,新的队形若满足以下三点要求,则就是新的完美队形: 1、挑出的人保持原队形的相对顺序不变,且必须都是在原队形中连续的;   2、左右对称,假设有m个人形成新的队形,则第1个人和第m个人身高相同,第2个人和第m-1个人身高相同,依...

蜡笔小新冲鸭!!! 179

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

吉哥系列故事——完美队形II HDU - 4513 (Manacher算法)

吉哥系列故事——完美队形II HDU - 4513 吉哥又想出了一个新的完美队形游戏!   假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] ... h[n],吉哥希望从中挑出一些人,让这些人形成一个新的队形,新的队形若满足以下三点要求,则就是新的完美队形:   1、挑出的人保持原队形的相对顺序不变,且必须都是在原队形中连续的;   2、左右对称,

codeswarrior的博客 440

HDU4513:吉哥系列故事——完美队形II(Manacher)

吉哥系列故事——完美队形II Time Limit: 3000/1000 MS (Java/Others)Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 5889Accepted Submission(s): 2375 题目链接:http://acm.hdu.edu.cn/showproble...

dft539533的博客 148

吉哥系列故事——完美队形II(hdu4513+Manacher)

吉哥系列故事——完美队形II Problem Description    吉哥又想出了一个新的完美队形游戏!   假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] ... h[n],吉哥希望从中挑出一些人,让这些人形成一个新的队形,新的队形若满足以下三点要求,则就是新的完美队形:

寻找&星空の孩子 1480

hdu----(4513)吉哥系列故事——完美队形II(manacher(最长回文串算法))

吉哥系列故事——完美队形II Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1012    Accepted Submission(s): 358 Problem Description   吉哥又想出了一个新的完美队形游戏!  假...

weixin_34187822的博客 81

【manacher加条件】 先递增后递减回文串 HDU - 4513

吉哥系列故事——完美队形II Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 5160    Accepted Submission(s): 2061   Problem Description   吉哥又想出了一个新的完美队形游戏...

博客 232

HDU 4513 吉哥系列故事――完美队形II(Manacher)

题目链接:[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher V - 吉哥系列故事――完美队形II 题意   吉哥又想出了一个新的完美队形游戏!   如果有n个人按顺序站在他的面前,他们的身高各自是h[1], h[2] … h[n],吉哥希望从中挑出一些人。让这些人形成一个新的队形,新的队形若满足下面三点...

weixin_30545285的博客 85

hdu 4513 吉哥系列故事——完美队形II

hdu 4513 吉哥系列故事——完美队形II         题目给出的整数哦, 不过也完全可以通过manacher算法来实现查找最长的回文哦.         这个道题比平常的回文长度的题目加多一个判断而已啦. #include #include #define MAX 100005 #define min(a, b) (a > b ? b : a) int q[MAX], ne

happen_zhang 963

HDU 4513 吉哥系列故事——完美队形II

吉哥系列故事——完美队形II Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 4024    Accepted Submission(s): 1602 Problem Description   吉哥又想出了一个新

shyoldman的博客 315

hdu 4513 吉哥系列故事——完美队形II

参见hdu 3068 的manacher算法 代码如下:#include #include #define M 110010 int s[M],ss[M*2];//s代表原来的字符串,ss代表插入之后的字符串 int p[M*2]; //表示以i为中心的(包含i这个字符)回文串半径长 int min(int a,int b) { return a>b?b:a; } int mai

lihaogegehuting的专栏 1184

HDU 4513 吉哥系列故事——完美队形II(manacher模板)

中文题面,大概算得上模板题...不过在模板的while部分加上限制条件即可..因为是整数数组,都是正数,所以manacher模板里的#,?,\0什么的可以修改为-1 -2 -3...题目让判断回文从左到中间非递减,那么如果是以i为中心,那么b[i-1]和b[i+1]如果回文就是相等的,并且假定b[i-x]非负,那么b[i-x+2]>=b[i-x]对于所有x都符合情况。所以加上这个限制条件即可...

590
上一篇: AcWing 703. 数独检查-(固定格式)
下一篇: Palindrome-(Manacher算法)
Cosmic_Tree
博客等级 码龄7年 134粉丝 337原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值