#P876. 【TYVJ1591】冗余电网
【TYVJ1591】冗余电网
【题目描述】
北冰洋有一座孤岛,多年来一直没电。近日,令岛民们振奋的消息传来:S国的专家要为他们修建电网!!!
孤岛上共有N个村庄,发电站要建在第K个村庄中。S国的专家要在N个村庄间修建M条输电线路,但由于地理原因,M条线路无法保证每个村庄都与第K个村庄(建有发电站)直接相连,同样,也不一定能保证每个村庄都与第K个村庄间接相连(假设A与B直接相连,B与C直接相连,那么A与C间接相连)。
然而,由于S国的专家智商实在太“高”了,以至于设计出了许多冗余线路。现给出第i条线路两个端点Ui,Vi(分别表示线路连接的两个村庄,Ui!=Vi)和长度Li,请你帮岛民算一下:如果电网可以覆盖全岛,最少需要多长的电线;若不能,有多少个村庄无电可用。
注意:0<=冗余线路数目<M;部分数据有重边。电网可双向导电。
【输入格式】
第一行:N M K
接下来M行:Ui Vi Li
具体含义见题目描述
【输出格式】
如果电网可以覆盖全岛,输出最少需要的电线长度;
若不能,输出无电可用的村庄的个数。
【输入样例1】
5 5 1
1 2 1
2 3 1
3 4 1
4 5 1
5 1 1
【输出样例1】
4
【输入样例2】
5 5 1
1 2 1
1 2 2
1 2 3
3 4 1
5 4 2
【输出样例2】
3
【样例解释】
对于样例一,电网可以覆盖全岛,最短长度为4;
对于样例二,电网无法覆盖3,4,5这3个村庄。
【数据范围】
对于20%的数据,有1<M,N<=10;
对于60%的数据,有1<M,N<=1000;
对于100%的数据,有1<M,N<=200000,0<Li<=1E+7;
对于40%的数据,电网无法覆盖全岛。