[WC2015] k 小割

题目描述

给出一个有向带权网络 $G = (V, E)$,权值函数 $w: E \rightarrow \mathbb{Z^{*}}$(即任意边 $e$ 的权值 $w(e)$ 均为正整数),和点 $s, t \in E$,使得在 $G' = (V, E - S)$ 上不存在 $s$ 到 $t$ 的路径。 设 $\mathfrak{S}$ 是所有满足条件的边集 $S$ 的全集,按 $w(S)$ 从小到大输出 $\mathfrak{S}$ 中前 $k$ 小的边集的边权和。其中 $w(S) = \sum_{e \in S} w(e)$。

输入输出格式

输入格式


第一行包含 $5$ 个正整数 $n, m, s, t, k$,其中 $s, t, k$ 意义如上,$n, m$ 分别表示 $\lvert V \rvert, \lvert E \rvert$(即点数和边数)。规定图中的节点用 $1$ 到 $n$ 的整数表示。保证 $s \neq t$。 接下来 $m$ 行,每行 $3$ 个整数 $x, y, z$,表示一条边权为 $z$ 的从 $x$ 到 $y$ 的边。可能有重边但保证没有自环。

输出格式


如果 $\lvert \mathfrak{S} \rvert < k$,先输出 $\lvert \mathfrak{S} \rvert$ 行,每行包含一个整数,表示前 $\lvert \mathfrak{S} \rvert$ 个 $w(S)$;再输出一行一个整数 $-1$。 如果 $\lvert \mathfrak{S} \rvert \geq k$,则输出 $k$ 行,表示前 $k$ 个 $w(S)$。 两种情况均需按照 $w(S)$ 从小到大输出。

输入输出样例

输入样例 #1

3 3 1 3 100
1 2 3
2 3 4
1 3 5

输出样例 #1

8
9
12
-1

输入样例 #2

5 8 1 5 10
1 2 45176
1 3 41088
1 4 32001
2 5 48931
3 5 39291
4 5 28970
2 3 48131
4 2 49795

输出样例 #2

116468
117192
118265
120223
145438
147235
149193
157556
158280
161311

说明

| 测试点编号 | $n \le$ | $m$ | $k \le$ | 约束 | |:-:|:-:|:-:|:-:|:-:| | $1 \sim 2$ | $10$ | $\le 20$ | ${10}^6$ | 边权不超过 $65536$ | | $3 \sim 6$ | $50$ | $\le 100$ | $100$ | 边权不超过 $65536$ | | $7 \sim 10$ | $3000$ | $= 2 n - 4$ | $5 \times {10}^5$ | $s$ 有边连向所有非 $t$ 节点,所有非 $s$ 结点有边连向 $t$,边权不超过 $2^{31} - 1$ | | $11 \sim 14$ | $1.5 \times {10}^5$ | $= 2 n - 4$ | $5 \times {10}^5$ | $s$ 有边连向所有非 $t$ 节点,所有非 $s$ 结点有边连向 $t$,边权不超过 $2^{31} - 1$ | | $15 \sim 20$ | $50$ | $\le 1500$ | $100$ | 边权不超过 $65536$ |