P5811 [IOI2019] 景点划分
不妨设
- 需要知道的一点:假设我们找到了一个大于目标大小的连通块,构造时只需要一个一个地把叶子剥掉直至大小合法就行了。
先考虑原图是树的情况。由于
-
证明。
有解:大小大于
的一颗子树可以通过剥叶子得到大小得到 。根据树的重心性质其余部分大小 ,而 ,必定也可以通过剥叶子得到 。无解:考虑一颗子树还没法得到
,要让连通块扩大,就必须包含重心,那其余的所有子树就不连通了。而 又不可能只在一颗子树中取,所以无解。
接下来回归一般图的情况。我们任取一颗
对于剩下的情况,继续判断:如果
否则,只需要逐个往
- 对于“
中与 中有连边的子树与 的大小和 ”必定无解的证明:为什么大小和 无解。考虑 以及与它有连边的所有 ,它们靠剥叶子得到 显然都不可能,故而必须要包含重心;而这样一来,剩余的 就不连通了,再加上所有 ,故而不合法。 - 为什么
。根据题目条件, ,而 ,故而成立。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通