1 条题解

  • 0
    @ 2017-04-06 23:20:25

    首先是有上下界的最小费用可行流。不知道怎么看出来。

    枚举乔神胜场数量\(t=1,2,3,...,m\),然后做如下建图:

    1. 对于一个与乔神无关的比赛\(match_i = (x_i,y_i)\),连接\(S\rightarrow match_i\),流量上下界都为\(2\),费用为0,表示 一开始两人可能胜场数都+1;\(match_i\rightarrow x_i, match_i\rightarrow y_i\),容量都为1,费用为0,表示最大可能胜场数+1;最关键的一条是:\(match_i\rightarrow T\),容量为1,费用为1,表示放走一个流量,也即操纵比赛,至于谁赢则让网络流自己决定。
    2. 对于一个与乔神有关的比赛\(match_i = (1, y_i)\),连接\(S\rightarrow match_i\),流量上下界都为\(1\),费用为0,再连接\(match_i\rightarrow y_i\),表示一开始乔神是输的;连接\(y_i\rightarrow 1\),容量为1费用为1,表示 让乔神赢。由于不可能让乔神输,这里不需要自动调整。
    3. 对于乔神\(1\rightarrow T\),流量上下界都为\(t\),即必须赢这么多场。
    4. 对于不是乔神的\(i\rightarrow T\),容量为\(g_1+t-g_i-1\),表示不能比乔神多或相等。
    5. 连接\(T\rightarrow S\),容量为\(\infty\),变有源汇为无源汇。

    如何处理最小费用可行流?考虑流量下界的意义,即“必须流过”,得到的必须送出去,送出去的必须得到。不妨建立超级源汇\(SS,ST\),对于一个必须流过\(w_{ij}\)的边\(i\rightarrow j\),连接:
    1. \(SS\rightarrow j\),容量为\(w_{ij}\)
    2. \(i\rightarrow ST\),容量为\(w_{ij}\)

    对新图求最小费用最大流。如果最大流没能将所有辅助边流满,说明不可行;否则最小费用为mcf得到的最小费用。

    最终答案就是所有最小费用的最小值。

  • 1

信息

难度
9
分类
(无)
标签
递交数
1
已通过
1
通过率
100%
上传者