1233. k小割

1233. 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

输出

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

输出

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\)

限制

每个测试点时限:2秒
内存限制:256MB

来源

WC2015

信息

ID
1232
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者