問題描述:
赤壁之戰前夕,龐統向周瑜獻連環計,瑜設計使蔣幹邀龐統到曹營。操與統同觀營寨,
又共論兵法。統對答如流使操敬服。統乘機提出:大江中風浪不息使北兵易生疾病。可將大
小船配搭,首尾用鐵環連鎖,鋪闊板以便人馬行走。操聞之大喜,派人連夜打造連環大釘,
鎖住船隻。
每打造一單位長度的鐵索要花費一單位的錢,曹操希望用最少的花費將n 艘戰船連線起
來(任意兩艘戰船直接或間接被鐵索連線),每艘戰船可以看成乙個點,座標為(xi,yi),曹
營中有一位神秘人物,他所在的戰船必須和曹操所在戰船直接連線,求最小花費。
資料輸入:
第一行戰船數n(2<=n<=100)。
第二行神秘人物所在的戰船序號a,曹操所在戰船序號b,(1<=a,b<=n,a!=b),戰船序號
從1 到n。
接下來n 行,每行兩個實數(建議定義成double 型別):xi,yi(-1000<=xi,yi<=1000),表
示序號為i 的戰船的座標。
結果輸出:
連線n 艘戰船的最小花費,輸出答案的時候四捨五入保留兩位小數。
輸入示例: 輸出示例:
42 3
0 01 0
0 -1
1 -1
3.14
根據prim演算法思想,把已經建成的道路初始化為0就ok了
1view code2 #include3 #include
4 #include5
double g[101][101];6
double ans=0;7
double func(double a,double b,double x,doubley)8
12void prim(int
n)13
32 used[j]=1
;33 ans+=g[j][closet[j]];
34for(k=2;k<=n;k++)
3541}42
}43}44
intmain()
4556
for(i=1;i<=n;i++)
57for(j=1;j<=n;j++)
58 g[i][j]=12345678.0;59
for(i=1;i<=n;i++)
6067
else
68 g[i][j]=0;69
}70}71
double k1=func(t[a][0],t[a][1],t[b][0],t[b][1
]);72 g[a][b]=g[b][a]=0.0;73
74prim(n);
75 printf("
%.2lf\n
",ans+k1);
76return0;
77}7879
資料結構與演算法實驗題7 2 連環計
問題描述 赤壁之戰前夕,龐統向周瑜獻連環計,瑜設計使蔣幹邀龐統到曹營。操與統同觀營寨,又共論兵法。統對答如流使操敬服。統乘機提出 大江中風浪不息使北兵易生疾病。可將大 小船配搭,首尾用鐵環連鎖,鋪闊板以便人馬行走。操聞之大喜,派人連夜打造連環大釘,鎖住船隻。每打造一單位長度的鐵索要花費一單位的錢,曹...
演算法與資料結構實驗題1 9
實驗任務 上回說到,你奔走於各個世界線拯救靜靜。現在,完成任務的你決定玩個簡單的遊戲靜一靜。我們知道,數字在計算機裡是用二進位制儲存的,現在你想知道如果把乙個數字的二進位制倒過來是多少。比如 int a 5,用二進位制表示就是00000000000000000000000000000101。把它倒過...
演算法與資料結構實驗題 3 1 火車
實驗任務 tonyy 等火車無聊的時候,會去觀察火車的排列,有一天他思考這麼乙個問 題,火車總站的火車只能進站,要出站的話只能先出最後進站的那輛車,那麼知 道火車的進站順序,能不能把它的出站順序調整成火車站想要的呢?資料輸入 輸入第一行為乙個正整數 n 表示火車輛數 編號 1 n 1 n 9 然後為...