最开始想到 有源汇有上下界最小费用最大流 去了 /qd
这一类问题的经典做法就是,将 \(x,y\) 看成点,将点看成边,然后多半是网络流问题。
考虑令 \(r\leq b\),这样我们的目标变成了尽可能地使 \(r\) 更大。考虑建图,源点连 \(x\),\(y\) 连汇点,带上下界表示至少需要选多少和最多能选多少 \(r\) 使得其满足要求。对于每一个点就连边 \(x\rightarrow y\),流量为 \(1\),然后跑 有源汇有上下界最大流 即可。
注意到中间 \(x\leftarrow y\) 一类边流量都为 \(1\)(下界为 \(0\) 上界为 \(1\)),因此 Dinic 复杂度为 \(O(n\sqrt{m})\),同时注意到边数 \(m\) 是 \(O(n)\) 的,因此复杂度为 \(O(n\sqrt{n})\),足以通过。
方案就在残量网络上构造即可。