CF1870H Standard Graph Problem
题目描述
给定一个有 $n$ 个顶点和 $m$ 条边的带权有向图。图中的每个顶点可以是高亮的或普通的。初始时,所有顶点都是普通的。图的代价被定义为:选择若干条边,使得从每个普通顶点出发,仅通过被选择的边,至少可以到达一个高亮顶点,这些被选择的边的权值之和的最小值。如果无法选择出满足条件的边集,则代价为 $-1$。
你的任务是,在每次 $q$ 次操作后,计算当前图的代价。操作有两种类型:
- $+\;v_i$:将顶点 $v_i$ 设为高亮,保证操作前该顶点为普通顶点。
- $-\;v_i$:将顶点 $v_i$ 设为普通,保证操作前该顶点为高亮顶点。
每次操作后,输出当前图的代价。
输入格式
第一行包含三个整数 $n$、$m$ 和 $q$($3 \le n \le 2 \cdot 10^5, 1 \le m, q \le 2 \cdot 10^5$),分别表示顶点数、边数和操作数。
接下来 $m$ 行,每行三个整数 $u_i$、$v_i$、$c_i$($1 \leq u_i, v_i \leq n, u_i \ne v_i, 1 \leq c_i \leq 10^6$),表示一条从 $u_i$ 到 $v_i$ 的有向边及其权值。
接下来 $q$ 行,每行一个操作,格式为 $+\;v_i$ 或 $-\;v_i$($1 \leq v_i \leq n$)。
输出格式
输出 $q$ 个数字,第 $i$ 个数字表示前 $i$ 次操作后的图的代价。
说明/提示
在第一个测试样例中:
- 第一次操作后,最优选择第 $3, 4, 5$ 条边,总代价为 $15$。
- 第二次操作后,没有高亮顶点,无法满足条件,代价为 $-1$。
- 第三次操作后,最优选择第 $1, 2, 5$ 条边,总代价为 $14$。
- 第四次操作后,最优选择第 $4, 5$ 条边,总代价为 $12$。
- 第五次操作后,最优选择第 $5$ 条边,代价为 $4$。
- 第六次操作后,所有顶点均为高亮,无需选择任何边,代价为 $0$。
由 ChatGPT 4.1 翻译