#YNU10J. 网络扩建
网络扩建
网络扩建
题目背景
编程挑战赛组委会在布置比赛场地的网络。场地内有若干台交换机,其中一部分交换机之间已经铺设了网线,使得部分交换机形成了若干个互相连通的区域(称为「连通块」)。不同连通块之间目前无法通信,它们各自是孤立的。
组委会手上有一份备选网线的清单,共 条。每条备选网线可以连接两台指定的交换机。一旦铺设一条备选网线且它两端的交换机原本不在同一个连通块内,这两个连通块就会合并为一个更大的连通块,从而减少一个孤立区域。如果两端已经在同一个连通块内,铺设这条网线不会改变任何东西(它是一条冗余线)。
题目描述
有 台交换机,编号 。已经铺设了 条网线,每条网线连接 和 。
现在有 条备选网线,按顺序编号 到 ,第 条连接 和 。你必须按顺序考虑备选网线——即只能从第 条开始,连续地铺设前 条(),不能跳过任何一条。
你的目标是让所有交换机最终处于同一个连通块内(即任意两台交换机都可以通过若干条网线互相到达)。请问最少需要铺设多少条备选网线(即最小的 )?如果即使把全部 条备选网线都铺上也无法达成目标,请输出 。
输入格式
第一行三个整数 (,,)。
接下来 行,每行两个整数 (),表示一条已有网线。
接下来 行,每行两个整数 (),表示一条备选网线。
输出格式
一个整数,表示最少需要铺设的备选网线条数;若无法达成目标则输出 。
样例
样例 1
6 3 4
1 2
3 4
5 6
1 3
4 6
2 5
1 6
2
解释:已有网线形成了三个连通块 、、。铺第 条备选线 后,前两块合并为 ,还剩 个孤立区域。铺第 条备选线 后, 和 合并,全场只剩 个连通块,目标达成。答案为 。注意第 条备选线连接的是 ,实际上第 条就合并了 和 。
样例 2
输入:
4 0 3
1 2
3 4
2 3
输出:
3
解释:初始没有已有网线, 台交换机各自孤立( 个连通块)。铺第 条 ,剩 块。铺第 条 ,剩 块。铺第 条 ,所有交换机连通,目标达成。答案为 。
样例 3
4 0 2
1 2
3 4
-1
解释:初始 个孤立块。铺完 条备选线后仍然有 个连通块( 和 ),无法达成全场连通,输出 。
相关
在下列比赛中: