사용법 #include <iostream>
#INCLUDE <cstdio>
#INCLUDE < 문자열 .H>
#INCLUDE <알고리즘>
사용 스페이스 성병;
구조체 P
{
INT (X);
int로 Y를;
INT의 t;
} zyf [ 200001 ];
부울 CMP (p xx에, P의 YY)이
{
반환 xx.t < yy.t;
}
INT 총 = 0 , 합계 = 0 ;
INT FA [ 5001 ], Z, N, m, A, B, K;
INT getfather ( INT w)
{
경우 (FA == [w] w)
창 ; w
FA [w] = getfather (FA [w]);
반환 FA를 [w];
}
무효화 (함께 int로 U, INT O)
{
FA [getfather (U)] = getfather (O);
}
INT 의 main ()
{
// freopen을 ( "testdata로 (23) .IN", "R", 표준 입력);
CIN >> >> N m;
위한 ( int로 난 = 1 ; i가 N = <; 내가 ++ )
{
FA [I] = I;
}
에 대해 ( int로 난을 =1 ; I <= m; 내가 ++ )
{
CIN >> zyf [I] .x를 zyf >> [I] .Y >> zyf [I] .T;
}
정렬 (zyf + 1 , zyf + m + 1 , CMP);
위한 ( int로 난 = 1 ; i가 <= m 내가 ++ )
{
경우 (! getfather (zyf [내가] .x를) = getfather (zyf [I]를 .Y))
{
함께 (zyf [I] .x와, zyf의 [를 I] .Y);
합계 + = zyf [I] .T;
대 ( INT의 J = 1 ; J <= N; J ++ )
{
INT의 CC =getfather (j);
경우 (공통의 == J)
전체 ++ ;
}
경우 (총 == 1 )
파괴 ;
총 = 0 ;
}
}
경우 (총 == 1 )
COUT << 합;
또
{
COUT << " orz " ;
}
반환 0 ;
}
여름의 14 일에 의해 2019년 9월 9일