日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

最小生成树II

發(fā)布時(shí)間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最小生成树II 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Description

  農(nóng)民約翰被選為他們鎮(zhèn)的鎮(zhèn)長!他其中一個(gè)競選承諾就是在鎮(zhèn)上建立起互聯(lián)網(wǎng),并連接到所有的農(nóng)場。當(dāng)然,他需要你的幫助。約翰已經(jīng)給他的農(nóng)場安排了一條高速的網(wǎng)絡(luò)線路,他想把這條線路共享給其他農(nóng)場。為了用最小的消費(fèi),他想鋪設(shè)最短的光纖去連接所有的農(nóng)場。你將得到一份各農(nóng)場之間連接費(fèi)用的列表,你必須找出能連接所有農(nóng)場并所用光纖最短的方案。每兩個(gè)農(nóng)場間的距離不會超過100000

Input

第一行: 農(nóng)場的個(gè)數(shù),N(3<=N<=5000)。
第二行..結(jié)尾: 后來的行包含了一個(gè)N*N的矩陣,表示每個(gè)農(nóng)場之間的距離。理論上,他們是N行,每行由N個(gè)用空格分隔的數(shù)組成,實(shí)際上,他們限制在80個(gè)字符,因此,某些行會緊接著另一些行。當(dāng)然,對角線將會是0,因?yàn)椴粫芯€路從第i個(gè)農(nóng)場到它本身。

Output

只有一個(gè)輸出,其中包含連接到每個(gè)農(nóng)場的光纖的最小長度。

Sample Input

4
0 4 9 21
4 0 8 17
9 8 0 16
21 17 16 0

Sample Output

28

分析
先排序,再用并查集做。

程序:

var f,a,b:array[0..25000000]of longint; re:array[0..5010]of longint; n,p,i,j,ans,m,check,k,l:longint;procedure kp(l,r:longint); var i,j,mid,t:longint; beginif l>r then exit;i:=l;j:=r;mid:=f[(l+r) div 2];repeatwhile f[i]<mid do inc(i);while f[j]>mid do dec(j);if i<=j thenbegint:=f[i];f[i]:=f[j];f[j]:=t;t:=a[i];a[i]:=a[j];a[j]:=t;t:=b[i];b[i]:=b[j];b[j]:=t;inc(i);dec(j);end;until(i>j);kp(l,j);kp(i,r); end;function find(x:longint):longint; var k,temp:longint; begink:=x;while re[x]<>x do x:=re[x];while re[k]<>x dobegintemp:=re[k];re[k]:=x;k:=temp;end;exit(x); end;beginreadln(n);p:=0;for i:=1 to n dobeginfor j:=1 to n dobegininc(p);read(f[p]);a[p]:=i;b[p]:=j;end;readln;end;kp(1,p);ans:=0;for i:=1 to n dore[i]:=i;for i:=1 to p dobeginm:=re[1];check:=0;for j:=1 to n doif re[j]<>m then check:=1;if check=0 thenbeginwrite(ans);break;end;if find(a[i])<>find(b[i]) thenbegink:=find(re[b[i]]);l:=re[a[i]];re[k]:=l;ans:=ans+f[i];end;end; end.

轉(zhuǎn)載于:https://www.cnblogs.com/YYC-0304/p/9500022.html

總結(jié)

以上是生活随笔為你收集整理的最小生成树II的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。