1 条题解
-
0ljt12138 LV 9 MOD @ 2017-04-06 23:20:25
首先是有上下界的最小费用可行流。不知道怎么看出来。
枚举乔神胜场数量\(t=1,2,3,...,m\),然后做如下建图:
- 对于一个与乔神无关的比赛\(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,表示放走一个流量,也即操纵比赛,至于谁赢则让网络流自己决定。
- 对于一个与乔神有关的比赛\(match_i = (1, y_i)\),连接\(S\rightarrow match_i\),流量上下界都为\(1\),费用为0,再连接\(match_i\rightarrow y_i\),表示一开始乔神是输的;连接\(y_i\rightarrow 1\),容量为1费用为1,表示 让乔神赢。由于不可能让乔神输,这里不需要自动调整。
- 对于乔神\(1\rightarrow T\),流量上下界都为\(t\),即必须赢这么多场。
- 对于不是乔神的\(i\rightarrow T\),容量为\(g_1+t-g_i-1\),表示不能比乔神多或相等。
- 连接\(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%
- 上传者