1 条题解
-
0
自动搬运
来自洛谷,原作者为

liangbowen
不能再摆了,,,搬运于
2025-08-24 22:14:34,当前版本为作者最后更新于2023-07-13 10:09:52,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题解代码都长得离谱,2k 代码了解一下!
如果我码风比较压行还可以 2k 以内,但是很不幸我是空格 + 大括号换行流。
不妨设 ,如果能使 联通,那么从中取出一个 或 的连通块也是平凡的,所以只考虑 。
考虑树的情况。要找到一条边 满足 那边的子树的 , 那边的子树的 。
容易发现 ,联想到重心,它的性质是 ,所以只需要枚举与重心相连的边,如果能找到一个子树把 塞进去,那么 ,很容易就能把 塞进去。找不到就是无解。
回到简单图。上面的 Special Task 提示我们建 树,并找到它的重心。下文令 表示重心相邻的那些点的子树。
如果 ,直接按照树的方法构造即可。否则,考虑第一个子树,有一些其他的子树会与它相连。如果这些相连的子树都算上了,还是没法干掉 ,那么必须动用两次重心了,无解。
令 表示干掉 需要用到的点集。可以认为这个过程是一个一个看子树,当 成功干掉 ,立刻终止。由于 ,故 。继续化简,,所以 ,也就是说必定可以干掉 。
输出即可。注意调换了 满足 后,输出也要调整一下。
代码,时间复杂度 。
- 1
信息
- ID
- 4820
- 时间
- 2000ms
- 内存
- 1000MiB
- 难度
- 7
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者