ABC352
1|0E - Clique Connect
https://atcoder.jp/contests/abc352/tasks/abc352_e
最小生成树
先复习一下最小生成树,这里用Kruscal
- 生成树(spanning tree):一个连通无向图的生成子图,同时要求是树。也即在图的边集中选择
条,将所有顶点连通。 - 最小生成(Minimum Spanning Tree,MST):边权和最小的生成树。
运用任意一棵最小生成树一定包含无向图中权值最小的边这个结论,对所有边按权值从小到大排序,贪心加入所有能加入的边即可。
那么针对这道题,他是给出了很多组边集,按边权分类。
如果直接对所有边暴力跑Kruscal,肯定会T。
注意题目只要求我们求这个图的最小生成树。用 Kruskal 求最小生成树时,用到的核心思想是并查集判断联通。我们考虑借助这个思想,跳过建图的过程,直接求最小生成树。
由于每次给定了我们很多点,并要求其中每个点之间都建一条给定权值的边。所以建一个集合的边,就相当于把该集合全都并到一个并查集里。
我们按照边权从小到大给输入的集合排个序,这样每个集合中的点第一次联通建的就一定是权值最小的边。我们每在连通块中加入一个新节点,就在一个累加器中加入该边的权值。当图第一次联通时,输出该累加器即可。这一部分除了存边的形式,其他都和 Kruskal 算法一样。
2|0F - Estimate Order
https://atcoder.jp/contests/abc352/tasks/abc352_f
好难的状压
- 有一个长度为
的排列 ,现在给定若干对关系,每对关系形如 ,表示 。 - 对于所有
,若 只有一种取值,输出 ,否则输出 。 ,保证至少一种合法的序列 。
容易想到用并查集处理有哪些
那么处理出相关联的集合后应该怎么做呢?
注意到
于是容易想到 dp,具体来说,设
这样只能求出有无解(但是题目保证有解捏),看起来很蠢啊。但是容易发现这说明
因为每个
__EOF__

本文链接:https://www.cnblogs.com/kdlyh/p/18248479.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下