題目傳送門
一道並查集+二分的題。(刷水題找信心
看到最大的最小就想到二分。那就稍微看看單調性:
易得存在乙個滿足題意的擁擠度 \(w\) ,並且使得 \(w-1\) 不滿足題意,而 \(w+1\) 滿足題意。稍微想想可知此題滿足二分的單調性,就可以二分 \(w\) 來求解。
考慮二分的檢查函式,題目只要求我們判斷圖上兩個節點是否連通,那麼用並查集維護即可。
#includeconst int maxn = 2e4 + 10;
struct node // 儲存邊的結構體
a[maxn];
int father[maxn], n, m, s, t;
// 並查集模板
void init(int size) // 初始化
int find(int x) // 找祖先
void uni(int x, int y) // 合併
bool check() // 找是否有公共祖先
bool solve(int x) // 二分的判斷函式
int main()
if (solve(r)) // 結束後 r 更小,這麼寫省點麻煩
printf("%d\n", r);
else
printf("%d\n", l);
return 0;
}
洛谷P1396 營救 題解
這其實一看就是乙個最短路的近似模板的題目,但我們要注意到兩個區之間可能會有多條道路,所以說我們只需要在最短路模板的基礎上把加和改為最大值即可,因為題目還說了要求出最後的結果是最大值的最小,所以我們可能會自然而然的想到二分,然而此題跑個dijkstra或spfa甚至是克魯斯卡爾最小生成樹都行。然而據某...
洛谷 P1396 營救
題目描述 咚咚咚 查水表!原來是查水表來了,現在 找這麼熱心上門的查表員啊!小明感動的熱淚盈眶,開起了門 媽媽下班回家,街坊鄰居說小明被一群陌生人強行押上了警車!媽媽豐富的經驗告訴她小明被帶到了t區,而自己在s區。該市有m條大道連線n個區,一條大道將兩個區相連線,每個大道有乙個擁擠度。小明的媽媽雖然...
洛谷 P1396 營救
題目描述 咚咚咚 查水表!原來是查水表來了,現在 找這麼熱心上門的查表員啊!小明感動的熱淚盈眶,開起了門 媽媽下班回家,街坊鄰居說小明被一群陌生人強行押上了警車!媽媽豐富的經驗告訴她小明被帶到了t區,而自己在s區。該市有m條大道連線n個區,一條大道將兩個區相連線,每個大道有乙個擁擠度。小明的媽媽雖然...