Alice与能源计划

拟阵的一个应用...
如果没有字典序限制,显然可以用费用流解决。
给右边每个点赋一个权值(d)
如果右边某个点是(A)类点,则权值等于它的代价,否则ans+=它的代价,权值=它的代价的相反数。
(s o i)连接费用(0)流量(1)的边。
(i o j+n)如果(i,j)能匹配则连接费用(0)流量(1)的边。
(i+n o t)连接代价(d_i)权值(0)的边。
ans-最大费用就是答案。
然而数据范围不能这样做。
观察到,匹配是一个拟阵,所以可以按照权值从小到大运行匈牙利算法。
如果权值相同,则按照编号小到大排序运行匈牙利算法,由于mst的一个著名定理,这样子能够得到字典序最小解。

原文地址:https://www.cnblogs.com/ctmlpfs/p/14967773.html