冗余路径
对一个e-DCC来说,由于任意一条边都被包含在一个简单环中,所以任意两个点我们都可以构造出两条不相交的路径,如下
也就是把每一条边都替换成简单环的另一条路径
而对于位于不同的e-DCC的点显然是有必经边的
于是这道题目就转化成一个模型:给连通的无向图加边,使得无向图没有桥(即变成边双连通分量),最小化加边数
因为边双连通分量本来就没有桥,所以我们考虑对整个图求一遍边双连通分量(使用 tarjan 算法),然后将边双连通分量缩为一个点考虑。那么缩完点后得到的图一定是一棵树(因为图中不可能存在环)
然后要加的边的个数就是
先证这是下界
对于缩点之后的树,如果我们的操作没有涉及某个叶子(注意这里是叶子而不是度数为
然后构造一下:
直接考虑节点数量在
每个子树都有若干个叶子,数目设为
我们每次选择不同的子树的两个叶子连边(这么做的原因就是因为每次连边的点的LCA都是根节点),相当于把序列{
先假设
我们每次操作都让
在
由于数是有限的,最后要么全部变为
对于前面一种情况,此时就已经符合题意了,对于后面一种情况,此时在让这个叶子节点与根节点进行连边即可,不难算出添加的边数是以上结论给出的式子
如果
此时,我们换根,让
证毕
这种每次按照单位数量选两个减的好像都是让最大的和最小的减,然后中途动态调整
一模一样的题
update 2024.8.4
证明过程中,对数列
比如Colored Balls,而Ans && Conclusion给出了更简单的一种证明
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构