【回文自动机】The Preliminary Contest for ICPC Asia Xuzhou 2019 G Colorful String

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

题目链接:https://nanti.jisuanke.com/t/41389


题意:给定3e5的字符串,求每个不同的回文串中不同的字母总和

思路:预处出Pre保存前缀和以此来计算区间内不同字母的个数,构造回文树,那么每个回文串对答案的贡献就是串的长度乘上串出现的次数了


#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
typedef long long ll;
typedef long double ld;
const int maxn = 3e5 + 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,pre[maxn][26],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 ;
}

ll get_num(ll l,ll r)
{
	ll res = 0;
	for(ll i = 0; i < 26; i++)
	{
		if(pre[r][i] - pre[l-1][i] > 0)
			res++;	
	}	
	return res;
}

void build()
{
	for(ll i = 1; i <= n; i++)  //构建回文树 
	{
		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]++;
	}
	return ;
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	
	cin >> str+1;
	n = strlen(str+1);
	
	for(ll i = 1; i <= n; i++)
	{
		for(ll j = 0; j < 26; j++)
		{
			pre[i][j] = pre[i-1][j];
		}
		pre[i][ str[i]-'a' ]++;
	}
	
	init();
	
	build();
	
	count();
	
	ll ans = 0;
	for(ll i = 2; i <= tot-1; i++)
	{
		ll l = pos[i] - len[i] + 1, r = pos[i];
		
		ans += get_num(l,r)*cnt[i];
	}
	
	cout << ans << endl;
	
	return 0;
}

 

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

相关推荐

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

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

2019ICPC(沈阳) (回文自动机+Palindrome Series优化dp)

无从追溯的一道题目。。 题目大意:给出一个字符串 s,要求在 s 中选出3个互不相交的回文子串,求长度之和的最大值 题目分析:考虑 n * n 的 dp,dp[ i ][ k ] 为 s[ 1 : i ] 的前缀中,选出了 j 个回文子串的最大长度,转移的话也比较简单,先对字符串建立回文自动机,枚举以点 i 为结尾的所有回文子串,设枚举到的节点为 p: k == 1:dp[ i ][ 1 ] = len[ p ] k == 2 || k == 3:dp[ i ][ k ] = max( dp[ i

Falcon的博客 796

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

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

2018年ACM-ICPC - 南京网络赛I:Skr【回文自动机+hash】

题目: 计蒜客链接~~~ 题意: 给出一个只含数字的字符串,求出字符串中所有本质不同的字符串所表示的十进制数的和 分析: 先对字符串建一颗回文树,每个节点就代表了一个本质不同的回文串,遍历一遍树的所有节点,直接通过10进制hash得到回文区间的字符串的值 代码: #include <bits/stdc++.h> using namespace std; typedef...

KobeDuu 305

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

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

别急着做AI:FDE教你识别真需求,让AI真正落地

人工智能项目在落地过程中,经常出现业务方高喊“我们要做AI”,却说不清具体应用场景的现象。判断一个需求是否值得用AI实现,不能只看技术流行度,而要从问题出现频率、当前替代方案以及可量化业务价值三个维度展开验证。同时需要冷静比较规则引擎与大模型的边界:不是所有语义任务都要靠生成式模型,稳定、可解释且低成本的传统方案往往更具工程性价比。数据闭环也至关重要,缺乏历史样本与反馈回流路径的项目,很难在真实环境中持续优化。针对智能客服、合同审查或企业知识库等典型场景,可借助人机协同与最小代价的用户验证,逐步筛除伪需求,

weixin_42624889的博客 342

The Preliminary Contest for ICPC Asia Xuzhou 2019 G. Colorful String(回文自动机)

The Preliminary Contest for ICPC Asia Xuzhou 2019 G. Colorful String 题意 给一个字符串,找回文子串中不同字母数量,最后相加。(回文子串可以相同) 分析 处理字符串回文子串,很显然回文自动机。 回文自动机 注意,回文树上每个节点代表的子串是本质不同的。但这个题要求子串可以相同,这就意味着要维护节点代表的子串的个数,等计算完子串后要...

Stormjing的博客 506

手把手教你用MOS管设计双电源自动切换电路(附零压降方案)

本文详细介绍了使用MOS管设计双电源自动切换电路的完整方案,包括基础电路拓扑、零压降优化设计及实战调试技巧。针对外接电源与电池供电的无缝切换需求,提供低损耗MOS管选型建议和性能实测数据,帮助工程师解决传统二极管方案的压降与漏电问题。

h0i1j2k3l的博客 1451

The Preliminary Contest for ICPC Asia Xuzhou 2019: G. Colorful String(回文自动机):

题目链接:点击这里 因为长度为n的字符串的本质不同的回文串的级别是O(n)的。 所以我们直接跑后缀自动机然后枚举所有本质不同的子回文串即可。 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #include...

_Griefs 256

STM32巡线小车PID调参实战:从五路灰度传感器数据到稳定运行的避坑指南

本文详细介绍了STM32巡线小车的PID调参实战,从五路灰度传感器数据处理到PID参数优化,提供了系统化的调试方法和常见问题解决方案。通过加权平均法计算偏移量,逐步调整比例、积分、微分参数,实现小车稳定巡线。文章还涵盖了定时器配置、控制周期优化及高级调试技巧,帮助开发者避开常见陷阱,提升巡线性能。

weixin_42570484的博客 194

Unity微信小游戏资源管理实战:YooAsset的Tag与Group策略精讲

本文深入解析了在Unity微信小游戏开发中,如何利用YooAsset的Tag与Group策略进行精细化资源管理。通过实战案例,详细阐述了如何通过Tag实现核心资源的必下与额外资源的按需加载,并借助Collector的合理打包策略,实现热更新包体最小化,从而有效解决加载慢、更新流量大的痛点,最终提升玩家体验。

weixin_29012677的博客 271

The Preliminary Contest for ICPC Asia Xuzhou 2019 G Colorful String(回文自动机+dfs)

这题建立一棵回文树,然后用dfs搜索答案,但是有一点需要注意,就是打vis的标记时,如果标记为1,那么在好几个节点都对同一个字符i打过标记,此时的搜索从字符i点回溯,回到它的父亲节点,搜索其它的字符,回溯的时候把vis[i]标记成0了,之前的vis[i]标记全被清空了,如果该父亲的其它字符节点下,有字符i的孩子,则此时统计就会出错。所以打vis标记的时候让vis++,而不是标记为0。 #inclu...

XYQ BLOG 168

小土堆学习笔记1:Dataset类代码实践

上一页中反复提到“类”,这究竟是什么东西?按我的理解(肯定不准确也不正式),class类就是某一个东西的共性,而且是等待被确认的共性。比如每台手机都有它自己的品牌、框架、价格等等属性,class类正是这些尚不确定的属性;而一旦确认了这些属性,就能够确认这到底是一台什么型号什么状态的手机,在确认了全部属性后就知道,这是一台Apple 16 Pro Max。抽象的不确定的共性就是类,具体的确定的个性就是示例。这个共性可以被用于多个编程目的,只不过某一个具体的编程行为还有它自己的独特性。

qq_40525602的博客 1626

2019icpc南昌网络赛 G. Colorful String 回文自动机+区间种类数(树状数组)The Preliminary Contest for ICPC Asia Xuzhou 2019

The value of a stringssis equal to the number of different letters which appear in this string. Your task is to calculate the total value of all the palindrome substring. Input The input consists...

pxlsdz的博客 357

SAP RAP 里的 EML 全解:从语言定位到事务语义,再到真实案例的落地方式

摘要:EML(Entity Manipulation Language)是ABAP RAP模型的核心组件,作为ABAP的子集用于操作业务对象(BO)。它通过声明式语法(READ/MODIFY/EXECUTE/COMMIT)统一访问BO的行为与数据,并由RAP运行时自动处理校验、锁定、草稿管理等生命周期。EML将业务语义融入代码,确保与Fiori应用共享同一套校验逻辑,并通过FAILED/REPORTED/MAPPED管道传递错误与消息。其事务控制(IN LOCAL MODE与COMMIT ENTITIES)

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

大数据分析利器:Tableau实战教程从入门到精通

你有3家分店,每月收集1000条销售数据(日期、分店、口味、销售额、订单数);想用Excel分析“哪家分店最赚钱”,但要做透视表→改格式→画柱状图,耗时30分钟,还经常因为公式错误返工;想看看“草莓味奶茶的月度销量趋势”,得手动筛选数据、调整折线图轴范围,稍不注意就漏看关键节点;想把分析结果分享给合伙人,Excel表格太抽象,对方盯着数字问“你到底想告诉我什么?

AI架构师小马 1494

Colorful String [The Preliminary Contest for ICPC Asia Xuzhou 2019 G]

题源链接:https://nanti.jisuanke.com/t/41389借助这道题学会了回文自动机wwww,超开心~打比赛时一直没法静下来好好读读回文自动机的板子,盲改一直gg 毕竟连ac自动机的基础都没有前几天抽时间好好学了学,发现这玩意儿原理挺容易理解的,板子也是真的好写,学习过程并未遇到什么阻碍先来说这道题,就是sum (回文串出现个数 * 回文串中不同字母个数...

kesisour的博客 125

传感器使用——ESP-WROOM-32 and INMP441麦克风音频采集

传感器使用——ESP-WROOM-32 and INMP441麦克风音频采集,数据显示及matlab操作界面。

qq_41958946的博客 7355

[The Preliminary Contest for ICPC Asia Xuzhou 2019 - 徐州网络赛G] Colorful String

Colorful String The value of a stringssis equal to the number of different letters which appear in this string. Your task is to calculate the total value of all the palindrome substring. Input ...

坤斤拷的博客 283

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

The Preliminary Contest for ICPC Asia Xuzhou 2019 G Colorful String(回文树 | manacher)

G. Colorful String 题意: 给出一个字符串,询问不同回文子串的权值之和。每个回文子串的权值为回文子串不同字母的个数。 题解: 回文树预处理出所有本质不同的回文子串及其出现次数,对于区间不同字母个数,可以对26个字母做前缀和。预处理后,计算方式就是每一个本质不同的回文子串的区间不同字母数量乘以出现次数。 代码 const int N = 3E5+10; struct PAM{ i...

Eternally831143的博客 431

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

The Preliminary Contest for ICPC Asia Xuzhou 2019 - G - Colorful String(回文树 + 主席树)

题目链接:https://nanti.jisuanke.com/t/41389 题意:给你一个串s,询问s中所有的回文串中不同子母的和。 思路:用回文树统计每一个回文串的长度和个数,用主席树统计回文串不同子母的个数即可。 PS:回文树的功能: 1.求串S前缀0~i内本质不同回文串的个数(两个串长度不同或者长度相同且至少有一个字符不同便是本质不同)2.求串S内每一个本质不同回文串出现的次数3...

sugarbliss 822

The Preliminary Contest for ICPC Asia Xuzhou 2019 G. Colorful String(回文树)

The value of a stringssis equal to the number of different letters which appear in this string. Your task is to calculate the total value of all the palindrome substring. Input The input consists...

Timeclimber 340

The Preliminary Contest for ICPC Asia Xuzhou 2019 G. Colorful String 回文树

签到提; 题意:求出每一个回文串的贡献 (贡献的计算就是回文串不同字符的个数) 题解: 用回文树直接暴力即可 回文树开一个数组cost[ ][26] 和val[ ] 数组; val【i】表示回文树上节点 i 的对应的回文的贡献 最后统计答案即可 LL get_ans() { LL ans = 0; for (int i = sz - 1; i &gt...

weixin_30767835的博客 128

The Preliminary Contest for ICPC Asia Xuzhou 2019 G. Colorful String

题意:定义一个字符串的价值为该字符串出现的不同字母的数量,现在给你一个字符串,求其所有回文子串的价值之和 思路:预处理一下字符串每个字母出现的位置,manacher求出以位置i为对称轴的回文串的最大半径r,枚举26个字母,二分找出每个字母第一个大于等于i的位置z,然后计算这个字母的贡献ans+=i+r-z就行了 代码: #include<bits/stdc++.h> using...

Zookkk的博客 261

G.Colorful String(The Preliminary Contest for ICPC Asia Xuzhou 2019)

https://nanti.jisuanke.com/t/4 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N=6e5+10,base =131; 4 typedef unsigned long long ull; 5 char str[N]; 6 ull hl[N],h...

dgv22747的博客 167

G Colorful String (The Preliminary Contest for ICPC Asia Xuzhou 2019 徐州网络赛)(双向链表优化Manacher 或 回文树)

题目链接: 徐州网络赛G Colorful String 题目: The value of a string sss is equal to the number of different letters which appear in this string. Your task is to calculate the total value of all the palindrome sub...

QDU_ZXF的博客 348
上一篇: 【PAM】回文自动机 && 回文树
下一篇: 洛谷P5496 【模板】回文自动机(PAM)
Whyckck
博客等级 码龄9年 6粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值