题解:GDCPC 2022 C 魔法师

news/2025/11/21 11:19:57/文章来源:https://www.cnblogs.com/P2441M/p/19251568

题意

给定 \(n\) 个大小写字母串 \(s_i\)。每次操作可以选择两个没有选过的串 \(s_i,s_j(i\neq j)\),产生 \(\min(|\operatorname{lcp}(s_i,s_j)|,|\operatorname{lcs}(s_i,s_j))|^2\) 的贡献。求能产生的最大贡献。\(1\leq n\leq 2\times 10^5\)\(1\leq \sum|s_i|\leq 3\times 10^5\)

题解

考虑如果产生的贡献为 \(|\operatorname{lcp}(s_i,s_j)|^2\) 怎么做。贪心,从大到小枚举 \(len\),那么对于所有 LCP 能取到 \(len\) 的字符串对,一定会在当前长度匹配掉。放到 Trie 上,插入一个串时,对于每个经过的节点 \(p\),令 \(cnt_p\gets cnt_p+1\)。按深度从大到小遍历每个点 \(p\),其对答案贡献为 \(\left\lfloor\dfrac{cnt_p}{2}\right\rfloor\times dep_p^2\),然后把 \(p\) 到根的链上的节点的 \(cnt\) 都减去 \(2\left\lfloor\dfrac{cnt_p}{2}\right\rfloor\)。跳过 \(cnt\leq 1\) 的点,暴力更新 \(cnt\) 复杂度就是总体 \(\mathcal{O}(\sum|s_i|)\) 的了。

回到原题,考虑能否重构字符串使得贡献变为 LCP。可以发现,只需要在奇数位置插入原串,偶数位置插入原串的反串,这样贡献就是 \(\left\lfloor\dfrac{|\operatorname{lcp}(s_i,s_j)|}{2}\right\rfloor^2\) 了,套用上述做法即可。时间复杂度为 \(\mathcal{O}(|\Sigma|\times \sum|s_i|)\)

代码
#include <bits/stdc++.h>using namespace std;#define lowbit(x) ((x) & -(x))
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int, int> pii;
const int N = 2e5 + 6, L = 6e5 + 5, C = 53;template<typename T> inline void chk_min(T &x, T y) { x = min(x, y); }
template<typename T> inline void chk_max(T &x, T y) { x = max(x, y); }int n;
int f(char ch) { return ch >= 'a' && ch <= 'z' ? ch - 'a' + 1 : ch - 'A' + 27; } 
struct Trie {int tot, mxd, son[L][C], cnt[L], dep[L], fa[L];vector<int> vec[L];void ins(const string &s) {int p = 0;for (char ch : s) {ch = f(ch);if (!son[p][ch]) chk_max(mxd, dep[son[p][ch] = ++tot] = dep[p] + 1), fa[tot] = p;++cnt[p = son[p][ch]];}}ll solve() {ll res = 0;for (int i = 1; i <= tot; ++i) vec[dep[i]].push_back(i);for (int d = mxd; d; --d) for (int x : vec[d]) if (cnt[x] > 1) {res += (ll)(d >> 1) * (d >> 1) * (cnt[x] >> 1);int c = cnt[x] - (cnt[x] & 1);for (int p = x; p; p = fa[p]) cnt[p] -= c;}return res;}
} T;int main() {ios::sync_with_stdio(0), cin.tie(0);cin >> n;for (int i = 1; i <= n; ++i) {string s, t; cin >> s;for (int i = 0; i < s.size(); ++i) t += s[i], t += s[s.size() - 1 - i];T.ins(t);}cout << T.solve();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/971887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 最新推荐窗帘十大品牌权威排行榜,定制 / 智能 / 遮光等全品类精选 国际协会测评认证优质品牌合集

引言 随着家居消费升级,窗帘已从单纯遮光单品升级为兼顾美学、功能与健康的核心软装。然而市场品牌繁杂,产品质量与性能差异显著,消费者难以精准抉择。本次榜单依托国际窗帘布艺协会(ICFA)最新测评体系,结合 3 大…

2025年11月岩板品牌选购指南:基于市场数据的品牌排名与性能对比

随着家居装修品质需求的提升,岩板因其耐磨、环保、设计多样化等特性,逐渐成为高端空间装饰的核心材料。2025年,岩板市场在绿色低碳政策推动下进一步规范,用户选择时更关注品牌的综合实力与交付保障。本文基于国家工…

2025 最新卫浴一线品牌推荐排行榜:权威揭晓领军品牌与新锐黑马,装修选购全攻略

引言 随着家居消费升级与二次装修需求爆发,卫浴空间已成为衡量生活品质的核心场景,消费者对产品的智能化、耐用性、环保性要求日益严苛。然而当前市场品牌鱼龙混杂,既有工艺粗糙、售后缺失的劣质产品,也有概念炒作…

2025年11月岩板品牌推荐榜单与选择指南:五大品牌综合对比分析

在当今家居装修与高端建筑装饰领域,岩板凭借其卓越的物理性能、丰富的设计表现力以及广泛的应用场景,已成为越来越多用户的首选材料。无论是追求个性化设计的高端住宅业主,还是注重实用性与美观平衡的商业空间设计师…

cad图纸怎么转换成pdf?这4个工具亲测好用!

好不容易熬夜画完的CAD图纸,发给甲方爸爸或施工队,结果对方发来一句:“你这文件我打不开啊,全是乱码!”或者是:“手机上看不了DWG,麻烦转个PDF给我。”要是有几十张CAD图纸文件需要转换,才让人真的头秃!那cad…

k8s 调试

kubectl debug -it \ rocketmq-console-67bfcb57c8-nlprv \ -n rocketmq \ --image=busybox \ --target=rocketmq-console \ -- /bin/sh “PID 看进程,Network 看网卡,IPC 看内存,/proc 是望远镜; Mount 不共享,所…

11.20 OP222操纵杆气缸报警

现象 报警操纵杆上下气缸伸出超时,有时候吸盘下降不到位,直接气缸报警。有时候其中一个吸盘没吸住,负压不足,带着老件重新去吸,叠住了。原因 1.气缸的下降速度被技师排查问题时调慢了 下图的导向轴里面有个力道不…

Linux部署Minio

Linux部署MinioMinIO 地址MinIO 是一个基于 Go语言实现的高性能对象存储。它采用AGPL(GNU Affero General Public License) 开源协议并兼容 S3 协议。官网地址:https://min.io/github地址:https://github.com/mini…

面向对象的设计第一阶段设计总结分析

前言 面向对象的设计第一阶段设计已经结束,在此时间中,我通过题目的训练,了解了许多:对一个问题进行拆解,运用对象的思路来解决问题; 熟悉了Java基本语法; 学会了代码的复用性,和相关工具的使用;第一次作业 7…

C语言中的strcat的模拟实现

strcat是字符串追加,可以在目标字符串后加上源字符串 char *strcat(char *Destination,const char *Source); 我们来模拟实现一下 #include<stdio.h> #include<assert.h> char* my_strcat(char* Destinat…

2025年比较好的真石漆岗亭厂家推荐及选择参考

2025年比较好的真石漆岗亭厂家推荐及选择参考行业背景与市场趋势随着城市化进程的加快和建筑装饰行业的持续发展,真石漆岗亭作为一种兼具美观性与实用性的建筑配套设施,近年来市场需求呈现稳定增长态势。根据中国建筑…

《数字破局》第三章需求迷雾

需求收集会开得如同菜市场。一线检验员小王希望系统能“自动填合格数据”,被李想温和但坚定地驳回:“这是为了效率牺牲原则,不行。”另一个车间的老师傅提出要系统增加“库存预警”,李想解释道:“这是WMS的领域,我…

利用配置错误的postMessage()函数实现DOM型XSS攻击

本文详细分析了postMessage函数在三种不同配置错误场景下导致的DOM型XSS漏洞,包括无源验证检查、使用indexOf()函数进行源验证以及白名单域存在XSS漏洞的情况,并提供了具体的漏洞代码和利用方法。利用配置错误的post…

《数字破局》 第二章:规划与选人

数字化是一把手工程。”文章里的话在林国栋脑中回响。他成立了项目组,自任总负责人。他力排众议,任命敢于创新的李想为项目经理,同时,他必须解决赵坤的问题。 他找赵坤深谈了一次:“老赵,我知道你担心什么。但时代…

2025年北京除甲醛服务机构权威评测:氧道净醛水漆/甲醛净化/新房装修除甲醛服务机构解析

随着室内空气质量问题日益受到关注,除甲醛服务已成为装修后不可或缺的环节。据2024年《中国室内环境健康白皮书》数据显示,新装修住宅甲醛超标率高达68.3%,其中浓度超过国家标准0.8mg/m的案例占比41%。本文通过实地…

2025年口碑好的矿用气动遥控平板车杭州别墅大宅装修

2025年口碑好的矿用气动遥控平板车杭州别墅大宅装修:行业精选与采购指南行业背景与市场趋势随着我国矿山开采行业的持续发展和技术升级,矿用辅助运输设备市场呈现出稳定增长态势。据中国矿业协会2024年发布的行业报告…

2025 年试验箱生产厂家全景推荐!六大实力厂商覆盖全品类需求,品质与服务双保障

在工业产品研发、品质检测与合规认证全流程中,试验箱是模拟各类环境条件、验证产品可靠性的核心设备,涵盖高低温试验箱、湿热试验箱、盐雾试验箱、快速温变试验箱等多个品类,广泛应用于电子、汽车、新能源、航空航天…

2025年靠谱的纸箱珍珠棉用户好评厂家排行

2025年靠谱的纸箱珍珠棉用户好评厂家排行行业背景与市场趋势随着电子商务和物流行业的蓬勃发展,包装材料市场迎来了前所未有的增长机遇。根据中国包装联合会最新发布的《2024-2025年中国包装行业发展趋势报告》显示,…

2025年质量好的矿用防爆柴油机搬运车行业内口碑厂家排行榜

2025年质量好的矿用防爆柴油机搬运车行业内口碑厂家排行榜行业背景与市场趋势随着我国煤矿安全生产标准的不断提高和智能化矿山建设的加速推进,矿用防爆柴油机搬运车作为井下辅助运输的重要设备,市场需求持续增长。据…

if __name__ == __main__作用

判断当前脚本是直接被运行,还是被作为模块导入到其他脚本中。 工作原理__name__ 是Python的一个内置变量当脚本直接被运行时,__name__ 的值为 "__main__"当脚本被导入为模块时,__name__ 的值为模块名(文…