Editorial for DMOPC '20 Contest 7 P5 - Mayors and Tolls
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
This problem can be solved with min cut / max flow. There are two main approaches:
Solution 1
Our construction has nodes, representing the source, sink, cities, and roads. The idea is to have edges with capacity from the source to the roads, and edges with capacity from the cities to the sink. Suppose is the set of vertices of a cut including the source. The cost of the cut is the sum of for roads not in , and for cities in . So, corresponds to a choice of cities to pay and roads to profit from.
By adding infinite-capacity edges from the roads to the incident cities, the minimum cut problem now has the constraints that for every profit we profit from, we must pay both incident cities.
So, the answer can be determined after finding the min cut / max flow for this network with nodes and arcs.
Solution 2
Let be the set of edges with both ends in . Then the net profit for a set of vertices is . However, note the following equation:
So, the answer can be written as
Or equivalently, as
where .
This is very close to a minimum cut problem. To turn it into one, we add a source and sink and add an arc to every node to either the source or sink depending on whether is positive or negative.
The resulting flow construction has nodes and edges.
Comments