北極通訊網路

2021-10-10 04:31:14 字數 2037 閱讀 6771

北極的某區域共有 nn 座村莊,每座村莊的座標用一對整數 (x,y)(x,y) 表示。

通訊工具可以是無線電收發機,也可以是衛星裝置。

無線電收發機有多種不同型號,不同型號的無線電收發機有乙個不同的引數 dd,兩座村莊之間的距離如果不超過 dd,就可以用該型號的無線電收發機直接通訊,dd 值越大的型號**越貴。現在要先選擇某一種型號的無線電收發機,然後t統一給所有村莊配備,數量不限,但型號都是 相同的。

配備衛星裝置的兩座村莊無論相距多遠都可以直接通訊,但衛星裝置是 有限的,只能給一部分村莊配備。

現在有 kk 臺衛星裝置,請你編乙個程式,計算出應該如何分配這 kk 臺衛星裝置,才能使所配備的無線電收發機的 dd 值最小。

例如,對於下面三座村莊:

1.png

其中,|ab|=10,|bc|=20,|ac|=105√≈22.36|ab|=10,|bc|=20,|ac|=105≈22.36。

如果沒有任何衛星裝置或只有 11 臺衛星裝置 (k=0k=0 或 k=1k=1),則滿足條件的最小的 d=20d=20,因為 aa 和 bb,bb 和 cc 可以用無線電直接通訊;而 aa 和 cc 可以用 bb 中轉實現間接通訊 (即訊息從 aa 傳到 bb,再從 bb 傳到 cc);

如果有 22 臺衛星裝置 (k=2k=2),則可以把這兩台裝置分別分配給 bb 和 cc ,這樣最小的 dd 可取 1010,因為 aa 和 bb 之間可以用無線電直接通訊;bb 和 cc 之間可以用衛星直接通訊;aa 和 cc 可以用 bb 中轉實現間接通訊。

如果有 33 臺衛星裝置,則 a,b,ca,b,c 兩兩之間都可以直接用衛星通訊,最小的 dd 可取 00。

輸入格式

第一行為由空格隔開的兩個整數 n,kn,k;

接下來 nn 行,每行兩個整數,第 ii 行的 xi,yixi,yi 表示第 ii 座村莊的座標 (xi,yixi,yi)。

輸出格式

乙個實數,表示最小的 dd 值,結果保留 22 位小數。

資料範圍

1≤n≤5001≤n≤500,

0≤x,y≤1040≤x,y≤104,

0≤k≤1000≤k≤100

輸入樣例:

3 210 10

10 0

30 0

輸出樣例:

10.00

分析:

一看到聯通塊,我們可以快速的想到克魯斯卡爾演算法.

回憶克魯斯卡爾演算法的過程:

1.將邊權從小到大排序.

2.依次從小到大掃瞄每一條邊,合併沒有合併的點集.

我們發現第二步本質上就是在維護聯通快的個數.

由此我們就得到了這道題的解決方法:

正常執行克魯斯卡爾演算法,記錄當前已經加入了幾條邊.

當加入某條邊後,恰好加入了n-k條邊.

那麼這條邊的權值就是最終答案.

#include

using

namespace std;

const

int n =

510, m = n*n/2;

int n,m,k;

struct edge

}e[m]

;int p[n]

;double a[n]

,b[n]

;double

count

(double x1,

double y1,

double x2,

double y2)

intfind

(int x)

intmain()

for(

int i =

1; i <= n; i ++);

}}sort

(e, e + m)

;int cnt = n;

double res;

for(

int i =

0; i < m; i ++)}

printf

("%.2f"

,res)

;return0;

}

Kruskal 北極通訊網路

不同型號的無線電收發機有乙個不同的引數d,兩座村莊之間的距離如果不超過d就可以用該型號的無線電收發機直接通訊,d值越大的型號 越貴。擁有衛星裝置的兩座村莊無論相距多遠都可以直接通訊。現在有k臺 1 k 100 衛星裝置,請你編寫乙個程式,計算出應該如何分配這k臺衛星裝置,才能使所有的無線電收發機的d...

1145 北極通訊網路

解題報告 這道題實質上是在問滿足存在k個連通塊的最小d是多少。然而並不用二分,因為在kruskal演算法的過程中本身聯通塊的數目就是遞減的,從一開始的n到k然後記錄最小值就能ac這道題了。include include include include using namespace std cons...

最小生成樹 北極通訊網路

時間限制 1 sec 記憶體限制 128 mb 提交 17 解決 7 提交 狀態 討論版 命題人 add xiezhenghao 不同型號的無線電收發機有乙個不同的引數d,兩座村莊之間的距離如果不超過d就可以用該型號的無線電收發機直接通訊,d值越大的型號 越貴。擁有衛星裝置的兩座村莊無論相距多遠都可...