【正文】
..100] Of Integer;{鄰接矩陣}l : Array [0..100] Of Integer; {l[i]存放頂點(diǎn)i到當(dāng)前已建成的生成樹中任意一頂點(diǎn)j的權(quán)值g[i,j]的最小值}u : Array [0..100] Of Boolean; { u[i]=True,表示頂點(diǎn)i還未加入到生成樹中;u[i]=False,表示頂點(diǎn)I已加入到生成樹中 } n, i, j, k, total : Integer;Begin Assign(Input, 39。39。);Reset(Input);Assign(Output, 39。39。);Rewrite(Output); Readln(n); For i := 1 To n Do Begin For j := 1 To n Do Read(g[i,j]); Readln;End; Fillchar(l, sizeof(l), $7F); {初始化為maxint}l[1] := 0; {開始時生成樹中只有第1個頂點(diǎn)} Fillchar(u, sizeof(u), 1); {初始化為True,表示所有頂點(diǎn)均未加入} For i := 1 To n Do Begin k := 0; For j := 1 To n Do {找一個未加入到生成樹中的頂點(diǎn),記為k,要求k到當(dāng)前生成樹中所有頂點(diǎn)的代價(jià)最小} If u[j] And (l[j] l[k]) Then k := j; u[k] := False; {頂點(diǎn)k加入生成樹} For j := 1 To n Do {找到生成樹中的頂點(diǎn)j,要求g[k,j]最小} If u[j] And (g[k,j] l[j]) Then l[j] := g[k,j]; End; total := 0; For i := 1 To n Do Inc(total, l[i]); {累加} Writeln(total); Close(Input);Close(Output);End.6 / 6