CF1082G Petya and Graph 题解
知识点:最大权闭合图模型!
题目的翻译便是这个模型的适用条件。
- 此模型建图方式:
-
首先建立超级源点 \(s\),和超级汇点 \(t\),并新建 \(m\) 个点 \(p_i,i \in [1,m]\) 使一一对应每一条边,将原来的 \(n\) 个点的编号初始化为 \(p_i,i \in[m+1,n+m]\)。
-
再将原来的第 \(i\) 条边 \(E_i(u,v)=w\) 在我们建的图上处理为 \(s\longrightarrow i\),且边权处理为 \(E(s,i)=w\),再将 \(i\longrightarrow u+m,i\longrightarrow v+m\) 分别连一条边。
-
最后将每一个点 \(p_i,i\in [m+1,m+n]\) 向汇点连边权为该点点权的有向边,即 $ p_i ,i \in [m,m+n] \longrightarrow t$,且 \(E(p_i,t)=V_{p_i}\)。
这样建图之后答案即为点权之和 \(-\) 新建图的最小割。
- 证明:
我们可以将这个模型转化为一个情景:有 \(m\) 个人,\(n\) 种使用需要付费的工具的花费分别为 \(V_{n_i}\)。这 \(m\) 个人每个人做任务,完成后分别会得到 \(w_{m_i}\) 的盈利,但会使用 \(k_{m_i}\) 种工具。一个工具被多次使用时只需收费一次,请你安排一些人去做任务使的总获利最大。
如果我们选择了 \(p\) 个人让他们不做任务,那么则需要付剩下的 \(m-p\) 个人所需的全部工具的费用。转化到图上,即是构成了这张图的一个割,这个可以画图自证。那么此时的利润即为 \(m-p\) 个人的利润 \(-\) 这 \(m-p\) 个人工具费用 \(=\sum w-p\) 个不工作的人的利润 \(-\) 这 \((m-p)\) 个人工具费用 \(=\sum w-\) 这张图的割。
为了利润更大,则减去最小割即可。
证毕。

浙公网安备 33010602011771号