題意:給乙個樹,並給乙個節點root,樹上有邊權,現在所有的節點要向節root傳送資料,求整棵樹上最小的最大邊權。
其實就是最小生成樹裸題。構造一顆最小生成樹,無論以哪個節點為root,其實都要輸出任意一層上的最大邊權。也就是說,在構建mst的時候維護個最大的邊權作為ans就好了,坑點是明明只有5e4個編號,n值【節點總數】卻有5e5個,因此不能直接遍歷前n*(n-1)/2條邊,會瘋狂執行錯誤,直接裸的排序遍歷所有邊,克魯斯卡爾一遍就好。
#include
#define ll long long
const
int maxn=
5e5+7;
using namespace std;
struct edge
}ma[maxn]
;ll n,m,rt,z[maxn]
;int
finds
(int x)
void
join
(int x,
int y)
intmain()
// if(cnt==m-1)break;
}printf
("%lld\n"
,ans)
;}
CCF 201812 4 資料中心
樣例輸入45 11 2 3 1 3 4 1 4 5 2 3 8 3 4 2 樣例輸出4 樣例說明 下圖是樣例說明。分析 第一眼看到題目,想著是超級複雜的圖論問題,看懂樣例後,就感慨為啥當初我考的時候遇不到這麼簡單的題目呢?把之前14年考過的乙個最優灌溉 複製一下,改幾行 幾分鐘就ac了。言歸正傳,題...
CCF 201812 4 試題名稱 資料中心
具體題目就不貼了。不得不說這是一道非常嚇人的題。解題思路 審題有些難度,第一眼看到這道題有些嚇人,細細分析 ac 後發現其實不難。題目中希望求出乙個最優的樹結構傳輸圖,也就是乙個最大傳輸時間最小的樹。接下來來看對最大傳輸時間tma xt tmax 的定義 tma xt tmax 是樹中每層的最大傳輸...
201812 4 資料中心
題目要求求圖形成的樹的邊的最大值的最小值 好繞 總之是乙個貪心,可以通過貪心推導 不過推導完可以發現實際上就是在求最小生成樹 下面分別用不同的方法實現 kruskal演算法,用到了並查集 如下 include include include include define n 500001 using...