給 n 個城市, m 條雙向道路,
其中有k個城市為避難所,代表如果有發生天災的話,每個城市的人都要前往避難所
假設每個城市x到離自己的最近的避難所距離稱為dis[x]
(若城市x本身為避難所則dis[x]=0)
而有些城市的人可能因為距離太遠,來不及到避難所逃生,因此會有額外的救援直升機,會進行r次救援
每次救援可以直接將一個城市x的人直接送到避難所,現在問你當經過最多r次救援後,沒被救援的城市中,
離最近的避難所最遠的城市距離最小的為多少,即求最小的max(dis[x])
保證圖連通,無重邊、自環
(此為範例測資原圖,粗線為避難所)
單筆測資
第一行有四個整數n,m,k,r
n(1≤n≤2⋅105)
m(n−1≤m≤min(2⋅105,n⋅(n−1)2))
k(1≤k<n)
r(0≤r<n−k)
第二行有k個數字xi(1≤xi≤n),代表k個避難所的編號,保證皆不重複
接下來的m行,每行有三個數字u,v,w(1≤u,v≤n,u≠v,1≤w≤106),代表點u與點v雙向連通,並且權重為w
保證圖連通,無重邊、自環
subtask1 ( 7%) w=1,1≤n∗(n−k)≤2⋅105
subtask2 (35%) 1≤n∗(n−k)≤2⋅105
subtask3 (58%) 無額外限制
輸出經過r次救援後最小的max(dis[x]),x∈(1∼n)
7 7 2 1 2 3 1 2 3 1 3 2 1 6 3 2 3 1 2 5 2 3 4 3 6 7 1
5
範例測試中,把救援直升機去救援城市7的人,剩下沒被救援的城市中最遠的是城市6,距離為5(3+2)
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |