2023 ICPC 合肥题解

gym


D. Balanced Array

赛时做法

枚举前缀维护合法的 k

感性上 k 越大需要满足的式子越少,只保留最大的 logk,可以通过

std

枚举 k,合法的 l 一定是一个左端点为 2k+1 的区间,二分右端点
等式 1il2k,ai+ai+2k=2ai+k 两边都是关于 ai 的线性函数,等价于判断 hash(1,l2k)+hash(1+2k,l)=2hash(1+k,lk)

从小到大枚举 k,对应合法区间的左端点递增,某种意义上可以看作对应一个合法前缀。维护已知合法的最长前缀 l,尝试用当前 k 延申 l
时间复杂度 O(n)

K. Campus Partition

“连通块次大值”是难以刻画的信息,注意到可以只保留最大值到次大值的链,转化为“链端点较小值”

考虑 dp,在 lca 处合并链。设 f[u,i] 表示子树 u、经过 u 的链一端权值为 i 的答案,g[u] 为子树 u 的答案

f[u,i]=max(f[u,i]+g[v],w is u's son before vg[w]+f[v,i])

g[u]=max(g[u]+g[v],f[u,i]+f[v,j]+min(i,j))

线段树合并维护 f

code

posted @   ft61  阅读(281)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2023-09-04 百度之星 2023 初赛题解
点击右上角即可分享
微信分享提示