「TFOI R1」Unknown Graph 题解

这里是出题人题解。

Solution Of Problem C : Unknown Graph.

题意还是很清晰的,这里就不再赘述题意了。

首先如果没有 q 的限制,显然有一种贪心思想就是每个点每次选剩余入度最多的与之连边。但是因为限制,就无法保证贪心的正确性。

那该怎么办呢?

一个大提示:这题是一道网络流。(您都看到这里了不会还不会做吧。

感觉如果知道算法是网络流的话,这题应该挺版的。建模方法如下:

  • 源点与所有点 i 建立容量为 ini 的边。

  • 所有点 i+n 与汇点建立容量为 outi 的边。(in,out 分别表是入度和出度)

  • 对于任意两个点 i,j 如果 iji,j 之间可以连边的话(即没有被限制),将 i,j+n 建立一条容量为 1 的边。

最后跑一遍最大流,由于保证了有解,所以跑完之后肯定是满流。

由于这个图是一个近似二分图,而完全优化的 Dinic 在二分图的复杂度是 O(mn),此处,mn2,故是可行的。

输出方案的话,就是如果建立的第三种边容量是 1,就说明 ij 连了一条边。

总的来说,这题难点在于想到这题是一道网络流,其他部分还是比较好理解的,输出方案也并不难。

posted @   Saltyfish6  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
Document
点击右上角即可分享
微信分享提示