洛谷P5496 【模板】回文自动机(PAM)

【AI方案集】AI智能体全自动跨境电商运营系统设计.docx 这套AI技术方案不走“先堆概念再硬套场景”的老路,而是以业务痛点为锚点,把机器视觉识别、预测性分析、大模型知识赋能等能力拆解成轻量化可落地的功能模块,直接嵌入生产运营的关键环节,既能快速落地见效,又能通过持续的数据迭代逐步放大价值,帮企业在不盲目新增硬件投入的前提下,稳步完成智能化升级,实实在在把AI变成能降本、提效、控风险的生产工具。 立即下载

题目链接:https://www.luogu.org/problem/P5496


题意:给定字符串,求每个位置为结尾的回文串个数

思路:裸题,不过注意,是last指针在fail树上跳,并不是直接输出num数组


#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
typedef long long ll;
typedef long double ld;
const int maxn = 5e5 + 100;
const int mod = 1e9 + 7;
const int inf = 1e9;

char str[maxn];
ll fail[maxn],len[maxn],last,ch[maxn][26],n,num[maxn],cnt[maxn],tot,pos[maxn];
//len[i], 以i结尾的最长回文子串的长度 
//cnt[i]:以i结尾的最长回文子串相同的子串的个数 在count后得到全部 
//num[i] 表示以i结尾的回文串的种类数 
//str[] 存放添加的字符
//fail[] 失配后跳转到的不等于自身的最长后缀回文子串。
//pos[] 表示当前最长回文子串的结束位置 
//ch[][] 类似于字典树,指向当前字符串在两端同时加上一个字符
//last 最新添加的回文节点
// tot 总的节点个数 
// n表示添加的字符个数 
ll newnode(ll x)
{
	for(ll i = 0; i < 26; i++) //for 非多次调用回文树可省略  
		ch[tot][i] = 0;   
	cnt[tot] = 0;
	num[tot] = 0;  
	len[tot] = x;
	return tot++;
}

void init()
{
		tot = 0;
		last = 0;
		newnode(0); //偶串根节点 
		newnode(-1); //奇串根节点 
		str[0] = '#'; //0号位置设置成一个不会出现的字符 
		fail[0] = 1;  //两个根节点互指 
		fail[1] = 0;
		return ;
}

ll get_fail(ll p,ll x) 
{
	while(str[ x-len[p]-1 ] != str[x] )
		p = fail[p];
	return p;
}

void count()
{
	for(ll i = tot-1; i >= 0; i--)
		cnt[ fail[i] ] += cnt[i];
	 //父亲累加儿子的cnt,因为如果fail[v]=u,则u一定是v的子回文串!
	return ;
}

void build()  //构建回文树 
{
	ll k = 0;
	for(ll i = 1; i <= n; i++)  
	{
		if(i >= 2)
			str[i] = (str[i]-97+k)%26+97;
		
		ll tmp = get_fail(last,i);
		ll s = str[i]-'a';
		
		if(!ch[tmp][s])
		{
			ll now = newnode(len[tmp]+2);
			
			fail[now] = ch[ get_fail( fail[tmp],i )  ][ s ];
			
			ch[tmp][s] = now;
			
			num[now] = num[fail[now]]+1;
		}
		
		last = ch[tmp][s];
		pos[last] = i;
		cnt[last]++;
		k = num[last];
		cout << k << " ";
	}
	return ;
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	
	cin >> str+1;
	n = strlen(str+1);
		
	init();
	
	build();
	
	//count();
		
	return 0;
}

 

产业园区运营负责人如何实现创新资源的系统化配置?.docx 产业园区运营负责人如何实现创新资源的系统化配置? 立即下载

相关推荐

高校技术转移办公室人员需要哪些材料完成成果转化项目审核?.docx

高校技术转移办公室人员需要哪些材料完成成果转化项目审核?

LOJ2484 CEOI2017 Palindromic Partitions DP、回文树

传送门 当我打开Luogu题解发现这道题可以Hash+贪心的时候我的内心是崩溃的…… 但是看到这道题不都应该认为这是一道PAM的练手好题么…… 首先把原字符串重排为\(s_1s_ks_2s_{k-1}s_3s_{k-2}...\)之后,我们不难发现:在一种对原串的回文划分中,对应的一对字符串在新的字符串上对应了一个长度为偶数的回文串。 那么设\(dp_i\)表示将新字符串的长度为\(i\)的前缀...

weixin_30338481的博客 187

状态估计【扩展卡尔曼滤波算法的神经网络训练】BP神经网络、扩展卡尔曼滤波EKF+BP、粒子滤波PF轨迹估计研究(Matlab代码实现)

【状态估计】【扩展卡尔曼滤波算法的神经网络训练】BP神经网络、扩展卡尔曼滤波EKF+BP、粒子滤波PF轨迹估计研究(Matlab代码实现)内容概要:本文主要介绍了基于变频控制的多相交错LLC谐振变换器闭环仿真研究,重点探讨了多相交错并联技术在降低输出电流纹波和提升功率容量方面的优势,分析了交错角对纹波抵消的影响以及均流问题的成因。针对变频控制带来的非线性特性,文章采用扩展描述函数(EDF)建立小信号模型,用于指导PID控制器的设计,并验证其在稳态和动态工况下的控制性能。通过Simulink仿真平台对闭环系统进行建模与测试,考察了启动过程、负载阶跃响应及频率调节的平滑性,结果表明所设计的控制系统具有良好的稳态精度和动态响应能力。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生及从事电源系统研发的工程技术人员。; 使用场景及目标:①掌握多相交错LLC谐振变换器的工作原理与建模方法;②学习变频控制下非线性系统的建模与PID环路设计技巧;③应用于高效率、低纹波开关电源的仿真设计与优化。; 阅读建议:建议结合文中提供的仿真模型与参数设置进行实践操作,重点关注EDF建模过程与控制器参数整定方法,通过对比不同交错角下的仿真结果加深对纹波抑制机理的理解。

【luogu P5496】【模板】回文自动机(PAM)(回文树)

给你一个字符串,要你对于字符串的每个位置,求有多少个回文串是在这个位置结尾的。

欢迎您的光顾awa 210

论文复现基于物理信息神经网络预测2D3D非稳态温度场及热源(Python代码实现)

内容概要:本文详细介绍了基于物理信息神经网络(PINN)预测2D和3D非稳态温度场及热源的Python代码实现,旨在复现相关科研论文。该方法将物理定律嵌入神经网络结构中,利用偏微分方程描述传热过程,在无需大量标注数据的前提下,求解复杂的非稳态传热问题,实现对温度场时空演化和内部热源分布的高精度预测。文中系统阐述了PINN的模型构建原理、损失函数设计策略(包含初始条件、边界条件与控制方程的物理约束)、网络训练流程以及数值实验结果,充分展示了其在科学计算与工程仿真中的强大潜力与良好泛化能力。; 适合人群:具备一定Python编程基础和深度学习理论知识,熟悉偏微分方程与传热学基本概念,对科学计算、物理信息建模、智能仿真等方向感兴趣的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于复现并深入理解PINN在非稳态热传导问题中的具体应用;②为从事热管理、材料科学、能源系统、航空航天等领域的研究人员提供可扩展、可定制的开源代码框架;③辅助高校教学与科研实践,帮助学生掌握物理信息驱动的机器学习建模方法及其在实际工程问题中的实现路径。; 阅读建议:建议读者结合文中提供的完整代码与详细注释,使用主流深度学习框架(如TensorFlow或PyTorch)进行动手实践,重点理解物理约束如何通过损失项融入网络训练过程,并尝试在不同几何构型、边界条件或热源形式下进行模型验证,以深入掌握PINN的设计思想与泛化机制。

无源项一维波动问题的PINN的Python torch实现

内容概要:本文详细介绍了无源项一维波动问题的物理信息神经网络(PINN)的Python实现方法,基于PyTorch框架构建神经网络模型,将波动方程作为物理约束嵌入损失函数中,实现对偏微分方程的无网格数值求解。文中系统阐述了PINN的核心原理、网络结构设计、初始与边界条件的处理策略,以及利用自动微分技术高效计算高阶偏导数的方法。该方法摆脱了传统数值方法对网格划分的依赖,能够以端到端的方式逼近复杂物理问题的解,展现出在科学计算与工程仿真领域的强大潜力,尤其适用于高维或多物理场耦合问题的智能求解。; 适合人群:具备深度学习基础、偏微分方程知识及Python编程能力的研究生、科研人员,以及从事科学计算、工程仿真与人工智能交叉领域研究的专业技术人员。; 使用场景及目标:①掌握物理信息神经网络(PINN)求解偏微分方程的理论与实现流程;②完成无源项一维波动方程的神经网络建模、训练与结果可视化;③将该方法迁移应用于热传导、流体力学、电磁场等其他物理系统的建模与仿真研究; 其他说明:代码实现强调物理定律与数据驱动的深度融合,建议读者在学习过程中结合PyTorch框架特性与微分方程理论,通过调整网络层数、激活函数、损失权重和优化器参数等方式,探究不同配置对模型收敛速度与求解精度的影响,以深化对PINN工作机制的理解。

【十二省联考2019】【LOJ3049】【洛谷P5248】【BZOJ5496】字符串问题(SAM优化建图)(拓扑排序)

LOJ传送门 洛谷传送门 BZOJ传送门 解析: 瞎写一通成功拿下BZOJ倒数第一(在线丢人 ) 常数实在是太大了没办法。。。 首先我们很显然发现要求的是DAG最长链,这是一个图论问题。只要把图建出来一切都好说。 如果建出图有环肯定就咕咕咕了。 显然不能暴力建图,考虑怎么优化前缀那部分的连边。 建立反串后缀自动机,那么前缀关系就转化成了后缀。 树上倍增找到每个串的对应节点,用一个vector存下...

zxyoi_dreamer的博客(不定期诈尸) 384

工业流水线上玻璃瓶内异物检测数据集VOC+YOLO格式915张1类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

【题解】洛谷P5496【模板】回文自动机(PAM)

给定一个字符串s,对于每个位置i,求出以i位置为结尾的回文子串个数。 本题强制在线,设读入的字符为c,上一个答案是k,则实际字符等于(c−97+k)mod26+97。 建立PAM,当第i个字符插入后,就可以得到以i位置为结尾的回文子串个数 = fail树上奇根到lst的节点个数(不包括奇根)。 即lst在fail树上的祖先个数。 这个属性可以在extend时维护,num[i] = num[fail...

秋叶红于二月花 483

Docker网络冲突?手把手教你解决Dify社区版无法访问172.18.0.0网段的问题

本文详细解析了在部署Dify社区版时,因Docker默认网段与局域网冲突导致无法访问172.18.0.0网段的问题。通过剖析Docker网络原理,提供了修改Docker守护进程默认地址池的根治方案,并介绍了在Compose文件中指定自定义网络等备选方法,帮助用户彻底解决网络冲突,保障服务稳定运行。

p8q9r0的博客 485

Type-C快充移动电源芯片避坑指南:IP5356配置全流程(支持PD3.0)

本文详细解析了英集芯IP5356芯片在Type-C快充移动电源中的应用,提供了从芯片选型、原理图设计、PCB布局到PD协议调试的全流程实战指南。文章重点剖析了如何避免散热、EMI及协议握手等常见设计陷阱,并分享了量产前的关键测试验证方法,旨在帮助硬件开发者高效打造稳定可靠的快充产品。

weixin_29235525的博客 856

洛谷P4762(PAM)

luoguP4762 PAM题目嗷,不会先学。 首先暴力的话就是和串的长度是一样的,如果里面含有偶数长度的回文串,那么就可以减少次数,奇数长度的回文串没意义。然后一开始令dp[i]=len[i],然后我们来看如何优化abbaabba这种首先打印ab,然后翻转abba,然后翻转abbaabba。 然后其他所有的都暴力加上。。 一开始自己枚举所有的状态点,然后暴力跳fail,然后T了。 看了题解,发现...

bestjerry007的博客 270

CTF-Web习题:2019强网杯 UPLOAD

本题涉及知识点:代码审计、文件上传漏洞、反序列化漏洞

LJW123487的博客 1903

【洛谷 P5496】【PAM】回文自动机

【洛谷 P5496】【PAM】回文自动机 题目 解题思路 PAM模板题 回文树就是将一个回文串折叠起来挂在树上 且是从下往上读再往下 如果是奇数的回文串最上面的那条边只读一次 例如:abbaabba的回文树 0节点挂的是偶数的回文串 1节点挂的是奇数的回文串 明确一下各种变量用处 p是节点个数 cur含义如下 好难解释 last指的是上一个回文串在回文树上的编号 len数组存的是每个节点代表的回文串长度 next数组存的是cur添一个c后工程新的回文串的节点 fail数组存的是cur中最长的回文后缀

Y的博客 295

VSCode玩转ESP-ADF音频开发:从环境搭建到成功播放MP3的避坑全流程

本文详细介绍了如何在VSCode环境下使用ESP-ADF框架进行ESP32音频开发,从环境搭建到成功播放MP3的全流程。重点解析了`IDF_PATH`和`ADF_PATH`的配置问题,以及如何解决`xTaskCreateRestrictedPinnedToCore`等常见编译错误,帮助开发者快速上手ESP-ADF音频开发。

weixin_42520909的博客 339

雷达信号处理中的CLEAN算法实现与优化

在信号处理领域,杂波抑制是提升目标检测性能的关键技术。CLEAN算法作为一种迭代去卷积方法,通过逐步提取最强信号分量并消除其影响,有效解决了传统方法在复杂环境下的局限性。该算法结合自适应阈值和噪声基底估计,显著提高了雷达信号处理的精度和鲁棒性。在工程实践中,CLEAN算法广泛应用于气象雷达、地物杂波抑制等场景,通过Matlab仿真可以快速验证算法性能并优化参数设置。本文重点探讨了CLEAN算法在雷达信号处理中的实现细节和优化技巧,包括距离徙动补偿、多普勒补偿等关键技术。

weixin_32430941的博客 264

回文自动机(PAM)

回文自动机PAM

m0_73666576的博客 1218

从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin

从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin spring-boot-admin 服务端创建与集成入nacos spring-boot-admin 查看日志

峡谷电光马仔的博客 1386

【模板】回文自动机(PAM)(洛谷P5496)

【代码】【模板】回文自动机(PAM)(洛谷P5496)

GordrnGhost的博客 555

专为AI打造的浏览器:内存占用仅为Chrome的1/9、比Chrome快11倍(Docker部署教程,支持飞牛nas等服务器部署)

🚀 专为AI打造的无头浏览器来了! 用Zig从零构建,内存仅Chrome的1/9,速度快11倍,原生CDP协议支持Docker部署,适合爬虫、自动化测试和AI代理应用。✨

XiaoqiangClub的博客 734

YOLOv8_obb训练流程-原理解析[旋转目标检测理论篇]

本文主要介绍了YOLOv8旋转目标检测的流程,介绍了标签的解码、预测结果的解码,以及如何理解旋转角度等内容,还介绍旋转目标检测框的正样本选取及Loss计算。

ice 4732

洛谷P5496 回文自动机模板 回文自动机

给出n≤5e5n\leq5e5n≤5e5的字符串,要求所有以iii位置结尾的回文串的数量。强制在线。 直接回文树,加字符统计。 这里我犯了一个错误,就是每次加字符之后,我直接用了回文树中数组的下标。 但是回文树中代表的是第iii个回文串,并不代表是第iii个位置。 每次增加一个字符,最多增加一个本质不同的回文串,但是也有可能这个回文串已经出现过。因此这里反而是在线统计是最合适的。 #include...

qq_40859782的博客 240

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

回文自动机学习笔记(配图)

回文树(EER Tree,Palindromic Tree,也被称为回文自动机)是一种可以存储一个串中所有回文子串的高效数据结构。使用回文树可以简单高效地解决一系列涉及回文串的问题。

Mason233Hello的博客 1549

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

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

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

回文自动机(回文树,模板)

S = zaacaa 若新加入 c 则检查包含前一个字符a的最长回文串:aacaa,其前一个字符为 z 不等,跳跃至包含前一个字符的第二长回文:aa 前一个字符为 c,相等,记录该位置最长回文串为 caac。后缀链跳跃:若后缀加入一个字符能构成回文串,其一定包含前一个节点的后缀;代表:{z , a , c , aca, aacaa , aa , caac}回文串。后缀:字符串从某个位置到末尾的一个字串。练习题:洛谷 P5496。(具体详解请查阅资料)

2301_80812282的博客 175

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

洛谷试炼日记(trie树,AC自动机,回文自动机)(解题报告)

文章目录**Trie树**P4683 [IOI2008] Type Printer 打印机**AC自动机**P2444 [POI2000]病毒**回文自动机**P5496 【模板】回文自动机(PAM)P3649 [APIO2014]回文串P4287 [SHOI2011]双倍回文 Trie树 P4683 [IOI2008] Type Printer 打印机 题目链接 就是求最小操作数嘛 一开始想太多,其实就是最长的最后打印呗 那就先标记一下最长的那一串 然后dfs先跳过那些最长串经过的节点 最后再枚举最长串的

juruo_c的博客 208

【APIO2014T1】回文串-回文自动机(PAM)模板题

【APIO2014T1】回文串-回文自动机(PAM)模板题

Maxwei_wzj的OI世界 973
上一篇: 【回文自动机】The Preliminary Contest for ICPC Asia Xuzhou 2019 G Colorful String
下一篇: 【回文自动机】 2018 南京网络赛 Skr
Whyckck
博客等级 码龄9年 6粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值