題意
學校有n臺計算機,為了方便資料傳輸,現要將它們用資料線連線起來。兩台計算機被連線是指它們之間有資料線連線。由於計算機所處的位置不同,因此不同的兩台計算機的連線費用往往是不同的。
當然,如果將任意兩台計算機都用資料線連線,費用將是相當龐大的。為了節省費用,我們採用資料的間接傳輸手段,即一台計算機可以間接的通過若干臺計算機(作為中轉)來實現與另一台計算機的連線。
現在由你負責連線這些計算機,你的任務是使任意兩台計算機都連通(不管是直接的或間接的)。 分析
這題其實就是最短網路
乙個乙個點列舉,如果它小於min,並且它不等於0,那麼min=這個點,記錄下這個點
varn,tj,i,j,k,x,y,t,min:longint;
a:array[0..200,0..200]of longint;
f:array[0..200]of longint;
begin
readln(n);
fillchar(a,sizeof(a),0);
fillchar(f,sizeof(f),0);
for i:=1 to n do
for j:=1 to n do
read(a[i,j]);
f[1]:=1;
tj:=0;
for i:=1 to n-1 do
begin
min:=maxlongint;
for j:=1 to n do
if f[j]=1 then
for k:=1 to n do
if f[k]=0 then
if (a[j,k]0) then
begin
min:=a[j,k];
t:=k;
end;
if min<>maxint then
begin
tj:=tj+min;
f[t]:=1;
end;
end;
write(tj);
end.
佈線問題(普利姆演算法)
普里姆 prim 演算法 1.基本思想 設g v,e 是具有n個頂點的連通網,t u,te 是g的最小生成樹,t的初始狀態為u u0 v te 重複執行下述操作 在所有u u,v v u的邊中找一條代價最小的邊 u,v 併入集合te,同時v併入u,直至u v。即 1 從連通網路 g 中的某一頂點 u...
普里姆演算法
include include include include using namespace std define max name 5 define max vertex num 20 權的上限值 typedef char vertex max name 頂點名字串 typedef int ad...
普里姆演算法
普里姆演算法的基本思想如下 假設n 是連通網,te是n上最小生成樹中邊的集合。從u 開始,te 開始,重複執行下述操作 在所有的u屬於u,v屬於v u的邊 u,v 的邊中找到權值最小的一條邊,並且併入te,同時u併入u,直到u v 先設乙個輔助陣列closedge max 初始時先把第乙個結點存入c...