CSP-S2019
括号树#
题意:给定一棵树,以 (
或 )
。
定义
记
显然有
dfs 过程中模拟栈匹配,假设 )
且能和某个未被匹配的 (
时间复杂度
划分#
题意:长度为
最小化
数据范围:
设
存在结论:
-
只有一个分割点,两部分分别为
,在 的前提下, 显然更优。 -
否则设分割点数为
,假设对于 都已经满足这个性质。将最后一个点左移:
假设存在
,使得 保持不动, 集体左移,在维持不降性质的同时使答案变小。可以看作
上的一个子问题,而其规模小于 ,已经被证明不优了;否则所有分割点集体左移,设第
段长度为 ,存在一种最优方案使前 段每段长度不增。即:
。结论成立的一个充分条件为:
不优,这是显然的。
因此每个
需要满足
单调栈找到最大的
不是很懂为什么要卡空间,把 i128
。
树的重心#
题意:
删去边
数据范围:
选定原树的一个重心作为根
先考虑
如果断点一条边后
记
设
整理一下:
对于一个
。- 不在
子树内。
只考虑第一个限制:对于
利用出入子树时的增量把第二部分容斥掉(可以线段树合并)。
考虑
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通