题目描述
题目译自 CCC 2018 S5「Maximum Strategic Savings」
有 N 个星球,编号为 1…N。每个星球有 M 座城市,编号为 1…M。我们将 e 星球上的城市 f 记作 (e,f)。
有 N×P 条双向航线,对于每个星球 e(1≤e≤N),有 P 条航线,编号为 1 到 P。第 i 条航线连接城市 (e,ai) 和 (e,bi),且每天需要花费 ci 的代价维护。
有 M×Q 个双向港口。对于所有编号为 f(1≤f≤M) 的城市,有 Q 个港口,编号为 1 到 Q。第 j 个港口可以连接城市 (xj,f) 和 (yj,f),且每天需要花费 zj 的代价维护。
现在需要拆除一些港口和(或)取消一些航线,使得城市之间仍能保持联通,且节省的代价之和最大。
输入格式
第一行四个整数,分别为 N,M,P,Q (0≤N,M,P,Q≤105)。
接下来 P 行,每行三个整数 $a_i,\,b_i,\,c_i(1\le a_i,\,b_i\le M,\,1\le c_i\le10^8)$。
再接下来 Q 行,每行三个整数 $x_j,\,y_j,\,z_j(1\le x_j,\,y_j\le N,\,1\le z_j\le 10^8)$。
数据保证城市之间两两联通,可能有重边或自环。
输出格式
输出一行一个整数表示每天最多能节省的代价之和。
2 2 1 2
1 2 1
2 1 1
2 1 1
3
2 3 4 1
2 3 5
3 2 7
1 2 6
1 1 8
2 1 5
41
提示
样例 2 解释
一种可行的最优解是关闭城市 (1,1) 与 (1,1)、(2,1) 与 (2,1)、(1,1) 与 (1,2)、(1,3) 与 (1,2)、(2,3) 与 (2,2) 之间的航线;并关闭城市 (2,3) 与 (1,3) 间的港口。最终可以节省 8+8+6+7+7+5=41 的代价。
对于 152 的数据,P,Q≤100,且对于所有的 1≤i≤P,都有 ci=1;对于所有的 1≤j≤Q,都有 zj=1;
对于另外 152 的数据,P,Q≤200;
对于另外 155 的数据,N,M≤200;
对于全部的数据,1≤N,M,P,Q≤105。