書式#include <iostreamの> の#include <CStringの> の#include <climits> 使用して 名前空間はstd; const int型 M = 500 ; int型のコスト[M] [M]; INT クリート(){ int型N、M。 CIN >> N >> M。 用(int型、Q = 1、Q <= N; Q ++ ){ ため(INT W = 1 ; ++ W; <= N w)のコスト[Q] = [W] INT_MAX。 } int型、B、Cと、 用(INT Q = 1 ; Q <= Mであり; q ++){ CIN >> A >> B >> C。 コスト[A] [B] =のC。 コスト[B] [A] =のC。 } 戻りN。 } ボイドプリム(int型N){ int型近い[M]、低コスト[M]。 用(INT Q = 1 ; Q <= N; Q ++ ){ 閉じる[Q] = 1 。 低コスト[Q] =コスト[ 1 ] [Q]。 } 閉じる[ 1 ] = - 1 。 用(INT Q = 1; Q <N; Q ++ ){ int型ミン= INT_MAX、U = Q。 用(INT = W 1、W <= N; ++ w)の場合(!近い[W] = - 1つの &&低コスト<[W] 最小){ 最小 = 低コスト[W]。 U = W。 } COUTを << " (" <<閉じる[U] << " " << U << " )" << " " <<低コスト[U] << ENDL。 ; W <= N; ++ w)の場合!(近い[W] = - 1 &&低コスト[W]> コスト[U])[W] { [W]低コスト = コスト[U] [W]。 閉じる[W] = U。 } } を返します。 } int型のmain(){ int型のT。 cinを >> トン。 一方、(t-- ){ int型 N = クリート()。 プリム(N) } 戻り 0 。 }