首页 > 其他分享 >manacher 记录

manacher 记录

时间:2023-06-30 21:55:58浏览次数:29  
标签:记录 int manacher len ss include mx

首先注意 2* n 的长度

 

 mx: 当前匹配到的最大长度 即 [1,mx]

id: mx 对应的中心点

pi : s[i] 为中心的回文串的最大长度,  pi /2 -1 是半径()

 

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std; 
 const int N=2.3*1E7;
 
 char s[N];
 char ss[N];
 int n,len,p[N];
 
 void manacher(){
 	int i,mid=0,mr=0;
 	
 	for(i=2;i<len;i++){
 		if(i<=mr) p[i]=min(p[mid*2-i],mr-i+1);
 		else p[i]=1;
 		
 		while(ss[i-p[i]]==ss[i+p[i]]) p[i]++;
 		if(i+p[i]>mr) mr=i+p[i]-1,mid=i;
 	}
 	
 	int ans=0;
 	for(int i=1;i<=n;i++) ans=max(ans,p[i]) ;
 	cout<<ans-1<<endl;
 }
 signed main(){
 	cin>>(s+1);
 	n=strlen(s+1);
 	
 	ss[++len]='!',ss[++len]='#';
 	for(int i=1;i<=n;i++) 
 		ss[++len]=s[i],ss[++len]='#';
 	//ss[++len]='?';
 	manacher();
 }
 

 

标签:记录,int,manacher,len,ss,include,mx
From: https://www.cnblogs.com/towboa/p/17517853.html

相关文章

  • 【七】MySQL数据库之记录相关操作
    【七】MySQL数据库之记录相关操作记录相关操作【一】介绍MySQL数据操作:DML在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括使用INSERT实现数据的插入UPDATE实现数据的更新使用DELETE实现数据的删除使用SELECT查询数据以及。本节内容包括:......
  • N层研习记录01:试图通过Boolean参数控制并发冲突的检查方式(LINQ to SQL)
    作者:光脚丫思考版权所有,转载请注明出处!^_^此研习用到的测试代码可通过以下两个地址下载,如果不能下载,请留言通知我。下载地址02:http://u.115.com/file/f26716bcc2如果你只想快速的查看测试代码的主题部分,或者想更具体的了解测试的详细记录,则可以参看另一篇名为《N层研习中的测试代......
  • 记录--让整个网站界面无滚动条
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助界面无滚动条滚动条的优化也有很多种,比如随便再网上搜索美化浏览器滚动条样式,就会出现些用css去美化滚动条的方案。那种更好呢?没有更好只有更合适像默认的滚动条的话,他能让你方便摁着往下滑动(他比较宽)特别省......
  • UE5 源码下载编译过程记录
    前言没有科学上网,就不要折腾了1注册Epic2注册github3关联账号在UE官网登入账号并且关联github账号4下载源码5执行Setup.bat5.1执行出错提示FailedtodownloadFailedtodownload'http://cdn.unrealengine.com/dependencies/UnrealEngine-24819931/19acf26186763763ae43ec3e4bd1......
  • BeanShell 后置处理程序 提取记录
    importjava.util.regex.Matcher;importjava.util.regex.Pattern;StringresponseData=prev.getResponseDataAsString();Patternpattern=Pattern.compile("砖石数\\[([0-9]+)\\]");Matchermatcher=pattern.matcher(responseData);if(matcher.find()){......
  • Dynamics 365 主表修改了未保存,显示“未保存的更改”时,不可添加明细记录
     实现方式,在明细表的新增按钮,设置为可自定义,绑定函数://授权记录显示“未保存的更改”时不可添加授权产品functionIsSavedAuthorize(selectedEntityTypeName,primaryEntityTypeName,firstPrimaryItemId,primaryControl,selectedControl){if(Xrm.Page.data.getIsD......
  • 记录vsftpd版本2和3配置文件默认不同导致的服务无法正常启动
    做完做了一个ftp的迁移,从centos6.5的2.2.2版本到bc-liunx8.2的3.0.3的迁移,这里简单说一下迁移1、scp拷贝ftp文件夹2、scp拷贝etc/vsftpd下的所有文件3、更改ftp文件夹的所有用户4、创建虚拟用户5、安装vsftpd,这里建议编译安装,可自行初始化。6、重点这里ftp顺利启动起来了,但是我们系......
  • 记录一次项目数据采集分析-NEWC数据泄漏
     一不小心,把B圈的项目给扒拉下来了,发现这些大佬板还关联着PHA,PHIC两个盘子,号称国外。PHIC大本营在成都,哈哈哈,不要问我咋知道"15642377778""周传海""210219197403282316"项目方qq号378720717QQ群858864205"17771173077" "王云龙" "420222199402268316"项目方qq号34......
  • C#常见编译错误记录
    C#引用类库时出现黄色三角加感叹号的处理方法,一个C#项目在引用中有个引用项上有个黄色三角加感叹号导致报错。解决:类库的目标框架不一致,修改成一样就可以了。选中类库右击属性;“目标框架”,修改成与引用项目目标框架一致即可。 ......
  • 记录--写一个高德地图巡航功能的小DEMO
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助风格设置加载地图使用AMapLoader.load加载地图,从 控制台  申请一个属于自己的keyimportAMapLoaderfrom'@amap/amap-jsapi-loader';...constAMap=awaitAMapLoader.load({"key":"您自己申请的......