【bzoj2565】最长双回文串

基于大模型的自动驾驶智能体:Agent-Driver架构、训练与实战指南 自动驾驶系统正从传统的模块化流水线向以智能体为核心的新范式演进。其核心原理在于将车辆视为一个能够与环境持续交互的自主决策智能体,通过多模态感知、记忆管理和基于大模型的推理能力,实现对复杂交通场景的理解与应对。这一技术价值在于利用大模型的常识推理和泛化能力,有望解决传统方法在长尾场景下面临的挑战。在应用场景上,智能体驱动架构特别适合处理动态交互密集、需高层语义理解的城区驾驶、无保护转弯及突发状况应对。本文聚焦的Agent-Driver项目,正是这一方向的典型实践,它通过融合视觉、语言大模型与强化学习,构建了一 阅读详情

Time Limit: 10 Sec Memory Limit: 128 MB

Description

顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。
输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。

Input

一行由小写英文字母组成的字符串S。

Output

一行一个整数,表示最长双回文子串的长度。

Sample Input

baacaabbacabb

Sample Output

12

HINT

样例说明
从第二个字符开始的字符串aacaabbacabb可分为aacaa与bbacabb两部分,且两者都是回文串。
对于100%的数据,2≤|S|≤10^5

Solution

还算是比较板的一道题吧……manacher和回文自动机都能做,这里介绍回文自动机的解法。
很多字符串题目的难点与关键点在于把字符串进行变化。设l[i]l[i]为以s[i]s[i]为最后一个字符的最长回文串长度,r[i]r[i]为以s[i]s[i]开头的最长回文串长度,题目要求的即为max(l[i]+r[i+1])max(l[i]+r[i+1])。回文自动机只能求到l[i]l[i],我们需把ss翻转再建一个机子才能得到r[i]。

Code

#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
const int maxn=1e5+5;
int n,ans,pos,tot,Last,l[maxn],r[maxn],sa[maxn],len[maxn],Next[maxn][26];
char s[maxn];
void init()
{
    tot=Last=2,len[1]=-1;
    sa[1]=sa[2]=1;
}
int match(int x)
{
    while(s[pos]!=s[pos-len[x]-1]) x=sa[x];
    return x;
}
void insert(char c)
{
    int p=match(Last),t=c-'a';
    if(Next[p][t])
    {
        Last=Next[p][t];
        if(!l[pos]) l[pos]=len[Last];
        else r[n-pos+1]=len[Last];
        return;
    }
    Last=++tot,Next[p][t]=tot,len[tot]=len[p]+2;
    if(!l[pos]) l[pos]=len[tot];
    else r[n-pos+1]=len[tot];
    if(len[tot]==1){sa[tot]=2;return;}
    p=match(sa[p]),sa[tot]=Next[p][t];
}
int main()
{
    scanf("%s",s+1),n=strlen(s+1),init();
    for(pos=1;pos<=n;pos++) insert(s[pos]);
    reverse(s+1,s+1+n),memset(Next,0,sizeof(Next));
    memset(len,0,sizeof(len)),memset(sa,0,sizeof(sa)),init();
    for(pos=1;pos<=n;pos++) insert(s[pos]);
    for(int i=1;i<n;i++) ans=max(ans,l[i]+r[i+1]);
    printf("%d\n",ans);
    return 0;
}
在 RAP 里把编号这件事做得既优雅又合规:Early Numbering 与 Late Numbering 的落地指南 本文探讨了 SAP RAP 框架中的三种主键编号策略及其适用场景。文章首先指出传统 ABAP 应用中主键处理的局限性,详细分析了早期编号(外部/内部)和延迟编号的差异,强调延迟编号在避免业务断号方面的优势。通过 Partner 业务对象案例,文章演示了延迟编号的实现方法,包括行为定义配置、保存类实现和编号分配逻辑。同时指出测试中常见的校验陷阱,并提醒生产环境应避免简单的 MAX+1 方案,建议采用原子取号机制确保并发安全。全文从业务合规性和技术实现两个维度,为 RAP 应用的编号策略选择提供了实用指导。 阅读详情

相关推荐

Matlab子图排版终极指南:从tight_subplot到tiledlayout的实战对比

本文深入对比Matlab中两大子图排版工具:社区经典函数tight_subplot与官方现代布局管理器tiledlayout。针对默认subplot产生的子图间距与边缘距离问题,详细解析两者的设计哲学、参数控制与实战应用,帮助用户根据版本与需求选择最佳方案,实现高效、精确且美观的多子图排版。

weixin_29048309的博客 360

最长双回文串(黑暗爆炸2565)(manacher)

顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。 输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。 思路:回文串上manacher求出每个位置的回文半径 对于每个位置i我们维护它作为某回文串起点或者终点R[i] , L[i],最长向左和向右延伸的距离,则答案为max(r[i] +l[i]) 例如baacaabbacabb对于位置1,它以b为回文串baac.

m0_53688600的博客 464

西电微原课设——矩阵式键盘数字密码锁设计

内容要求:根据设定好的密码,采用4x4矩阵键盘实现密码的输入功能。当密码输入正确之后,锁就打开(绿灯亮),10秒之后,锁自动关闭(红灯亮);如果连续输入三次密码不正确,就锁定按键5秒钟,同时发出报警(黄灯闪),5秒后,解除按键锁定,恢复密码输入。...

Polaris的博客 1万+

最长双回文串

题目大意: 输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。 题解:若X,Y都是回文串且相邻,则共用一个’#‘。 可以对于每个‘#’找出其左边界和右边界。 代码: #include<cstdio> #include<cstring> #include<algorithm&gt...

a6t2007的博客 241

VS2019+CAXACAD2023二次开发教程(一、环境搭建)

CAXACAD2023的二次开发相关文件和库都在的文件夹下。CAXACAD2023的默认开发环境是VS2019,如果是用VS2019的环境话,可以直接安装这个插件,安装好后就可以一键新建的项目,新建的项目会自动帮我们配置好所有的环境,并且生成必要的代码和初始的框架。(本来想用VS2022的,但配置环境太麻烦,用VS2022,增加一个环境变量是可以运行自带的例程的,但新建项目要配置的东西和环境太多,就放弃折腾了)

weixin_42968757的博客 4616

保姆级教程:用GROMACS 2022.4的拉伸模拟(SMD)加速蛋白-蛋白组装过程

本文详细介绍了如何使用GROMACS 2022.4的拉伸分子动力学模拟(SMD)技术加速大蛋白组装过程。通过CHARMM36力场和SMD技术,将传统需要数月的蛋白结合过程缩短至数天,大幅提升模拟效率。文章包含参数设计、索引组创建、周期性边界处理等实战技巧,并提供了完整的GPU加速工作流和常见问题解决方案。

weixin_30338481的博客 445

bzoj 2565——最长双回文串(manacher)

点击打开原题目链接 题意:给一个字符串,求这个字符串中最长的双回文串的长度。(双回文串:一个能被分为两个回文串的字符串。) 题解:最长回文串当然是直接上manacher,但是这道题和普通的manacher有区别,因为要判断的是两个连续的回文串的最长长度。首先还是用最原始的manacher处理出以每个位置为中心的回文串的长度len[i]。因为要求两个连续的回文串,那么一定满足第一个回文串的最后一...

wookaikaiko的博客 666

全国区块链职业技能大赛国赛考题前端功能开发

全国区块链职业技能大赛国赛考题区块链应用前端功能开发

本郡主是喵 1334

[国家集训队] 最长双回文串

马拉车板子加修正

2301_80096362的博客 500

军品研制过程-转阶段

介绍军品转阶段评审

Abel的博客 2万+

metahuman 下载材质 脸部灰白 脸部过亮

metahuman 下载材质 脸部灰白 脸部过亮

jacke121的专栏 243

最长双回文串【BZOJ 2565】【回文树】

BZOJ 2565 要求的是最长双回文串的长度,也就是一个串由两个回文串拼接而成。那么,我们不妨从前往后跑一次回文树,然后再从后往前跑一次分别知道以它为最后一个的回文串,和以它为第一个的回文串,知晓回文后缀与回文前缀,那么不就可以开始拼接了嘛。想了半天怎么跑fail,没想到竟然这么的简单,做复杂了。 #include <iostream> #include <cstdi...

既然弱小,就只顾变强就是了 302

Autosar CAN 网络管理测试用例(3)——Repeat Message Timer 时间测试

Autosar CAN 网络管理测试用例(3)——Repeat Message Timer 时间测试

蚂蚁小兵 2463

【BZOJ2565】最长双回文串 Manacher

【BZOJ2565】最长双回文串 Description 顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。 Input 一行由小写英文字母组成的字符串S。 ...

aodanchui1057的博客 143

假人有限元模型

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

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

BZOJ 2565 最长双回文串 Manacher

BZOJ 2565 最长双回文串

Renatus的博客 673

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

BZOJ_2565_最长双回文串_manacher

BZOJ_2565_最长双回文串_manacher Description 顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。 输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。 Input 一行由小写英文字母组成的字符...

111

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

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

BZOJ2565最长双回文串——manacher

题目描述 顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。 输入 一行由小写英文字母组成的字符串S。 输出 一行一个整数,表示最长双回文子串的长度。 ...

weixin_34240657的博客 167

BZOJ2565: 最长双回文串(回文树)

BZOJ2565: 最长双回文串(回文树) 知识点:1.前后扫描两次字符串,分别建回文树。 #include <bits/stdc++.h> using namespace std; const long long MAXN = 100002; struct PAM { char c[MAXN]; long long ch[MAXN][26]...

weixin_30600197的博客 152

bzoj2565 最长双回文串

最长双回文串 题目背景: BZOJ - 2565 分析:据说用回文自动机很裸,据说回文自动机做这个题很简单,宝宝这种蒟蒻不会,还是就manacher吧,记录下信息即可,详见代码注释。 Source: #include #include #include #include using namespace std; const int N = 1e6 + 5;

scarlyw的博客 356

BZOJ 2565 最长双回文串

Description 顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。 输入长度为nn的串SS,求SS的最长双回文子串TT,即可将TT分为两部分XX,YY,(|X|,|Y|≥1|X|,|Y|≥1)且XX和YY都是回文串。Input 一行由小写英文字母组成的字符串SS。Output 一行一个整数,表示最长双回

Canopus 277

[bzoj2565]最长双回文串 manacher

美德与过恶,道德上的善与恶,都是对社会有利或有害的行为;在任何地点,在任何时代,为公益作出最大牺牲的人,都是人们称为最道德的人。

Unlimited Code Works 301

BZOJ2565: 最长双回文串 manacher算法

2565: 最长双回文串 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1532  Solved: 792 [Submit][Status][Discuss] Description 顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。 输

Oakley 846

回文树 BZOJ 2565 最长双回文串

2565: 最长双回文串 Description 顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。 输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。 Input 一行由小写英文字母组成的字符串S。 Output

INCINCIBLE的博客 681

【bzoj2565】最长双回文串 manacher

刚开始读错题了,以为整个串也要是回文串,后来发现是两个回文串拼起来就好了,那么就先插入‘#’,然后算出l[i]表示以i为结尾的最左的回文串的中心,这个随便算一下就好了,然后枚举每一个‘#’当做断点,然后更新答案。 #include #include #include #include #include #include #define maxn 200010 using namespa

Oxer的专栏 1446

[BZOJ2565]最长双回文串

Description 顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。 输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。 Input 一行由小写英文字母组成的字符串S。2≤|S|≤10^5 Output 一行一个整数,表示最长双回文子串的长...

a5163273的博客 93
上一篇: 【hdu3709】平衡数
下一篇: 【HEOI2015】最短不公共子串
StrideTG
博客等级 码龄9年 4粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值