【bzoj2565】最长双回文串

SNAP计算哨兵二号的叶面积指数(LAI) 对于哨兵二号数据以及LANDSAT8数据,SNAP提供已经集成好的模块计算LAI。在Optical->Thematic Land Processing->Biopyhsical Processor目录下面。 对于经过Sen2Cor处理好的数据,需经过重采样才可进行计算。重采样工具在Raster->Geometric->Resampling。 如果选择Biopyhsical Processor S2_10m进行计算,需要将所有的波段都重采样为10米(哨兵二号的第二波段为10米,可据此波 阅读详情

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;
}
网络可视化工具netron详细安装流程 netron安装目录1.netron 简介2.不同操作系统下的安装使用方式2.1 在线版本:只要有浏览器就可以2.2 不同操作系统安装使用3.netron支持的网络框架4.netron测试演示 1.netron 简介 在实际的项目中,经过会遇到各种网络模型,需要我们快速去了解网络结构。如果单纯的去看模型文件,脑海中很难直观的浮现网络的架构。 这时,就可以使用netron可视化工具,可以清晰的看到每一层的输入输出,网络总体的架构,而且支持各种不同网络框架,简单好用。 2.不同操作系统下的安装使用方式 2.1 阅读详情

相关推荐

OPA(运放)与MOS管组成的恒流源电路

电路图 这是一种由运放组成的恒流源电路。 原理分析: 1. OPA OPA (集成运算放大器)具有开源增益高,输入阻抗大,输出阻抗小的特点。 2. MOS管工作原理 我们知道三极管是利用 Ib 的电流控制 IC 的电流,属于电流控制电流器件。 而MOS则是利用Ugs的电压去控制电流 Id 的,所以说 MOS 管是电压控制电流的器件。 对于N沟道增强型的MOS管,当Ugs>Ugs(th)时,MOS就会开始导通,如果在D极和S极之间加上一定的电压,就会有电流Id产生。 在一定的Uds下,D极电流Id的

暖暖_的_纠结的博客 3万+

最长双回文串(黑暗爆炸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

大疆Livox Mid-70雷达的使用

一、前期准备 (一)、使用Livox Viewer测试雷达 1、设置静态IP sudo ifconfig enx081f7152092a 192.168.1.50 查看IP是否设置成功 lacyexsale@lacyexsale-KLV-WX9:~$ ifconfig enx081f7152092a Link encap:以太网 硬件地址 08:1f:71:52:09:2a inet 地址:192.168.1.50 广播:192.168.1.255 掩码:255.255.25

LacyExsale的博客 1万+

最长双回文串

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

a6t2007的博客 241

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

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

weixin_42518874的博客 344

ui(new Ui::MainWindow)的解析

Ui命名空间的变量名,和默认空间的变量名虽然一样,但实际是两个不同的东西。所以构造函数中调用MainWindow是没问题的,因为它不是在调用自身,而是在调用其他命名空间下的另一个同名的MainWindow类。这里使用C++的成员初始化列表语法,初始化成员变量指针ui,可这里有个问题,在MainWindow的构造函数中new 一个MainWindow,这又调用一下MainWindow的构造函数,这岂不是会死循环?ui_mainwindow.h文件。mainwindow.h文件.

sinat_31608641的博客 1193

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

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

wookaikaiko的博客 666

第38节:cesium 风场效果(含源码+视频)

cesium 风场效果

qq_29384639的博客 2329

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

马拉车板子加修正

2301_80096362的博客 500

[Dify实战] 在 Dify 官网环境使用 File Translator 插件实现 Office 文档翻译(支持 DOCX/XLSX/PPTX)

摘要:Dify平台的FileTranslator插件可实现Office文档一键翻译,保留原格式和结构。该插件支持Word、Excel、PPT等文件格式,无需额外密钥,直接复用Dify配置的大模型。安装后,用户可在Workflow中调用插件,设置目标语言等参数完成翻译。输出文件自动命名,保留原格式。适用于跨国协作、海外营销等场景,显著提升多语言办公效率。该插件简化了文档翻译流程,是企业用户和开发者的实用工具。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 544

GEE APP:基于Sentinel-1 SAR数据的洪水检测与制图系统:利用GEE平台实现洪涝区域提取、面积统计及矢量栅格化导出

本文介绍了一个基于Google Earth Engine平台的Sentinel-1 SAR洪水监测应用,通过自动化流程实现洪水淹没区域的精准检测与分析。系统采用Refined Lee滤波降噪和Otsu自适应阈值算法,结合SRTM地形数据消除干扰,可自动计算淹没面积并生成可视化结果。该工具提供用户友好的交互界面,支持多格式数据导出,适用于灾害应急响应、环境监测和城市规划等领域,具有云平台处理、算法鲁棒性强和操作简便等技术优势。

此星光明博客 327

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

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

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

用业务语义织就企业数据之网:SAP Datasphere 的定位、架构与落地场景全解析

SAP Datasphere作为SAP业务数据云的核心组件,通过语义层整合企业内外部数据,支持实时分析与AI应用。其核心功能包括数据集成、语义建模、虚拟化与仓库能力,通过Spaces实现资源隔离,Data Builder和Business Builder分别面向技术和业务建模。该平台与SAP HANA Cloud、SAC等深度集成,支持财务统一分析、供应链可视化等典型场景,并可通过BW bridge实现传统BW资产云化迁移。Datasphere强调开放互联,能与Databricks等生态伙伴协同,为企业提供

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

【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

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

BZOJ 2565 最长双回文串 Manacher

BZOJ 2565 最长双回文串

Renatus的博客 673

NTscan扫描工具

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

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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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、付费专栏及课程。

余额充值