CCC '17 S4 - Minimum Cost Flow

View as PDF

Submit solution



Points:17 (partial)
Time limit:3.0s
Memory limit:256M
Author:

Problem type

Canadian Computing Competition: 2017 Stage 1, Senior #4

The city of Watermoo has buildings numbered 1, 2, \ldots, N. The city has M pipes that connect pairs of buildings. Due to urban planning oversights, building 1 is the only sewage treatment plant in the city. Each pipe can be either active or inactive. The set of active pipes forms a valid plan if building 1 is directly or indirectly connected to each other building using active pipes. (Pipes directly connect pairs of buildings. Buildings X and Z are indirectly connected if X is directly or indirectly connected to Y, and Y is directly or indirectly connected to Z.)

The municipal government of Watermoo is currently operating a valid plan of N-1 pipes today, but they think it is too expensive! Each pipe has a monthly maintenance fee that the city must pay when it is active, and the total cost of a valid plan is the sum of the maintenance fees of its active pipes. (Inactive pipes cost nothing.)

Additionally, researchers at the University of Watermoo have developed an experimental pipe enhancer which you can use on one pipe of your choice. It will reduce that pipe's cost from C down to \max(0, C-D), where D is the enhancer's strength.

The city wants you to minimize the cost of the plan, and they want you to do it quickly. Every day, the city will allow you to activate one pipe, and deactivate another pipe. How many days do you need to make the set of active pipes form a valid plan, whose cost is minimum among all valid plans and all choices of enhanced pipe?

Note that it is possible that the plan becomes invalid while you are working, but by the end it should be a valid plan.

Input Specification

The first line will contain the integers N, M, and D (1 \le N \le 100\,000, N-1 \le M \le 200\,000, 0 \le D \le 10^9). Each of the next M lines contain three integers A_i, B_i, and C_i, which means that there is a pipe from building A_i to building B_i that costs C_i per month when activated (1 \le A_i, B_i \le N, 1 \le C_i \le 10^9). The first N-1 of these lines represent the valid plan the city is currently using.

It is guaranteed that there is at most one pipe connecting any two buildings and no pipe connects a building to itself.

For 3 of the 15 available marks, N \le 8, M \le 28 and D=0.
For an additional 5 of the 15 available marks, N \le 1\,000 and M \le 5\,000 and D = 0.
For an additional 3 of the 15 available marks, D = 0.
For an additional 2 of the 15 available marks, N \le 1\,000 and M \le 5\,000.

Output Specification

Output one integer on a single line, the minimum number of days to complete this task. If the initial valid plan is already an optimal plan, then output 0.

Sample Input 1

4 4 0
1 2 1
2 3 2
3 4 1
4 1 1

Sample Output 1

1
Explanation for Sample Output 1

Note that it does not matter which pipe you use the pipe enhancer on because D = 0, so it will not affect the maintenance fee of any pipe.
On the first day, you should deactivate the pipe from building 2 to 3 and activate the pipe from building 4 to 1.

Sample Input 2

5 6 2
1 2 5
2 3 5
1 4 5
4 5 5
1 3 1
1 5 1

Sample Output 2

2
Explanation for Sample Output 2

One solution using the minimum number of days is to first use the pipe enhancer on the pipe from building 1 to 2 to decrease its cost to 3. Then on the first day, replace the pipe from building 2 to 3 with the pipe from building 1 to 3, and on the second day replace the pipe from 1 to 4 with the pipe from building 1 to 5. Note that the cost of the optimal plan is 10.
Additionally, there are no solutions where you use the pipe enhancer on the pipe from building 1 to 3 or the pipe from building 1 to 5. Doing so would make that pipe have a maintenance fee of 0, and then any optimal plan would have cost 11 (and we have already seen that we can achieve a cost of 10).

Sample Input 3

4 4 0
1 2 715827882
2 3 715827882
3 4 715827882
4 1 715827884

Sample Output 3

0
Explanation for Sample Output 3

The initial valid plan is already an optimal plan. Be careful of integer overflow when implementing your solution.


Comments


  • 0
    fungucide420
     commented on Oct. 5, 2017

    Can the point breakdown for the problem be updated?


  • -1
    Xue_Alex
     commented on July 2, 2017 edit 3

    In the first sample output description it states that the edge between nodes 1 to 4 are activated on the first day. Does that mean the edges aren't activated from day 0, or does it just state that for clarity?

    EDIT: I can't read: "The first N−1 of these lines represent the valid plan the city is currently using."


  • 0
    septence123
     commented on March 7, 2017

    Help on last sample case. How is it a valid plan for the last sample case? Doesnt the pipe from 4 to 1 need to be removed?


    • 1
      Kirito
       commented on March 7, 2017

      The first N-1 of these lines represent the valid plan the city is currently using.

      As you can see, the first three form a perfectly valid plan.


  • 11
    Kirito
     commented on March 2, 2017 edit 2

    New cases by d and r3mark have been added as a 2 point subtask. All submissions have been rejudged.


    • -7
      root
       commented on June 17, 2017 edited

      A new cases

      A new case

      New cases

      Took two WAs before Kirito got their grammar straight.

      Literally laughed out loud


      • 3
        Kirito
         commented on June 17, 2017

        A new case by d has been added as a 1 point subtask. All submissions have been rejudged.

        New cases by d and r3mark have been added as a 2 point subtask. All submissions have been rejudged.

        The second edit is because the number of cases increased from 1