CF1389G Directing Edges
题目描述
给你一张 $n$ 个点 $m$ 条边的无向连通图。图上还有 $k$ 个特殊点。
你需要给每一条边定向,也可以保留该边无向。如果你保留了第 $i$ 条边无向,你需要支付 $w_i$ 个硬币,如果你给它定向,则无需支付任何费用。
我们称一个点是 *饱和的*,当且仅当所有特殊点通过图上的边,都可以到达这个点(如果一条边是无向的,则这条边可以双向通行)。在你给图定向完成后(可能保留一些边无向),对于每个饱和的点 $i$,你都能获得 $c_i$ 个硬币的收益。故而,你的总利润为 $\sum\limits_{i \in S} c_i - \sum\limits_{j \in U} w_j$,其中 $S$ 表示饱和的点集,$U$ 表示你选择保留无向的边集。
对于每个顶点 $i$,在要求强制选取 $i$ 为饱和点的情况下,计算你可能收获的最大利润。
输入格式
第一行输入三个整数 $n, m, k ~ (2 \le n \le 3 \cdot 10 ^ 5; 1 \le m \le \min(3 \cdot 10 ^ 5, \frac{n(n - 1)}{2}); 1 \le k \le n)$。
第二行输入 $k$ 个两两不同的整数 $v_1, v_2, \ldots, v_k ~ (1 \le v_i \le n)$,表示每个特殊点的编号。
第三行输入 $n$ 个整数 $c_i ~ (0 \le c_i \le 10 ^ 9)$。
第四行输入 $m$ 个整数 $w_i ~ (0 \le w_i \le 10 ^ 9)$。
接下来 $m$ 行,每行输入两个整数 $x_i, y_i ~ (1 \le x_i, y_i \le n; x_i \neq y_i)$,表示第 $i$ 条边的两端点。
保证任意点对之间最多只有一条边。
输出格式
输出 $n$ 个整数,其中第 $i$ 个整数表示要求强制选取 $i$ 为饱和点的情况下,可能收获的最大利润。
### 样例解释
对于第一个样例:
- 强制选取顶点 $1$ 为饱和点的最优方案为:将边定向为 $2 \to 1$,$3 \to 2$,则 $1$ 是唯一一个饱和点,答案为 $11$;
- 强制选取顶点 $2$ 为饱和点的最优方案为:保留 $1-2$ 这条边无向,另一条边定向为 $3 \to 2$,则 $1, 2$ 为饱和点,而保留边 $1-2$ 无向的代价为 $10$,所以答案为 $2$;
- 强制选取顶点 $3$ 为饱和点的最优方案为:将边定向为 $2 \to 3$,$1 \to 2$,则 $3$ 是唯一一个饱和点,答案为 $5$。
第二个样例的最优方案为将边定向成环状:$1 \to 2, 2 \to 3, 3 \to 4, 4 \to 1$。这样之后,所有点都是饱和点。
说明/提示
Consider the first example:
- the best way to make vertex $ 1 $ saturated is to direct the edges as $ 2 \to 1 $ , $ 3 \to 2 $ ; $ 1 $ is the only saturated vertex, so the answer is $ 11 $ ;
- the best way to make vertex $ 2 $ saturated is to leave the edge $ 1-2 $ undirected and direct the other edge as $ 3 \to 2 $ ; $ 1 $ and $ 2 $ are the saturated vertices, and the cost to leave the edge $ 1-2 $ undirected is $ 10 $ , so the answer is $ 2 $ ;
- the best way to make vertex $ 3 $ saturated is to direct the edges as $ 2 \to 3 $ , $ 1 \to 2 $ ; $ 3 $ is the only saturated vertex, so the answer is $ 5 $ .
The best course of action in the second example is to direct the edges along the cycle: $ 1 \to 2 $ , $ 2 \to 3 $ , $ 3 \to 4 $ and $ 4 \to 1 $ . That way, all vertices are saturated.