2286. 道路与图书馆 (Roads and Libraries)
1000ms
256MB
中等
图的基本应用
题目描述
HackerLand 有 $n$ 个城市(编号从 $1$ 到 $n$),初始时城市之间没有任何道路,也没有图书馆。
你可以选择:
- 在任意城市建一座图书馆,花费为 $c_{\text{lib}}$。
- 在给定的候选道路中修复一条双向道路,花费为 $c_{\text{road}}$。
如果一个城市的居民所在的连通分量中至少含有一座图书馆,则该城市的居民可以使用图书馆。请计算使所有城市的居民都能使用图书馆的最小总成本。
输入格式
- 第一行包含一个正整数 $q$ ($1 \le q \le 10$),表示测试用例的数量。
- 对于每个测试用例:
- 第一行包含四个正整数 $n, m, c_{\text{lib}}, c_{\text{road}}$。
- 接下来 $m$ 行,每行包含两个正整数 $u, v$,表示一条可以修复的双向通道。
输出格式
- 对每个测试用例,输出一行一个整数,表示最小的总花费。
样例 1
输入 (Input)
2 3 3 2 1 1 2 3 1 2 3 6 6 2 5 1 3 3 4 2 4 1 2 2 3 5 6
输出 (Output)
4 12
- $1 \le q \le 10$
- $1 \le n \le 10^5$
- $0 \le m \le \min\left(10^5, \frac{n(n-1)}{2}\right)$
- $1 \le c_{\text{road}}, c_{\text{lib}} \le 10^5$
› 输入 stdin
CtrlShiftEnter
‹ 输出 stdout
错误 stderr
操作成功