学校网络
主要是证明第二问,也就是将一个有向图变为一个SCC所需要添加的最少的边数(与将一个无向图变成一个e-DCC联系起来)
首先,
我们尝试构造一种方法:见这篇题解
这种证明方法的心路历程:
我们先假设零入度点更少,此时为了尽快达到下界,我们就一直将一个连通块的零出度点与另一个连通块的零入度点相连,这就是情况②的讨论,而由于零入度点更少,我们会发现某一个时刻图有且仅有一个原来的零入度点,现在无法再进行之前的操作了(因为现在就只有一个连通块了),于是我们将情况①拿出来讨论
update 2024.8.20
其实如果按照上面的想法计算下界的话,原图中存在既是零出度点又是零入度点的时候就不好考虑了。实际上应该这么考虑:原图中有三类点不可以存在,第一是零入度但不是零出度的点,二是零出度但是零入度的点,三是既是零出度又是零入度的点。这三类点都不能存在(最后的图只包含一个既是零出度又是零入度的点,这不是说第三类点可以存在,因为这个点是新产生的,原图中已有的三类点一定都不能存在);而第一类点至少会作为一条新边的终点,第二类点至少会作为一条新边的起点,第三类点至少会作为一条新边的起点和另一条新边的终点,也就是说现在的起点和终点数量是确定的,而一条新边最多会同时消除一个起点和一个终点,所以下界就是
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构