傳送門:hdu 1231 暢通公路
中文題目就不做過多的解釋了
這個題目主要考察的並查集簡單合併和查詢,沒有壓縮路徑。
但是在這裡說一下路徑壓縮的兩種方法(遞迴和非遞迴)
遞迴:
int find(int x)
非遞迴的就相對來說有點麻煩了
int find(int x)
return r;
}
#include
#include
#define mst(a,b) memset(a,b,sizeof a);
const int maxn = 1e3+5;
int pre[maxn];
int find(int
x)void join(int
x,int
y)int main()
mst(tmp,0);
int ans = 0;
for(int i=1;i<=n;i++)
printf("%d\n",ans-1);
}return
0;}
並查集 暢通工程
problem description 某省調查城鎮交通狀況,得到現有城鎮道路統計表,表中列出了每條道路直接連通的城鎮。省 暢通工程 的目標是使全省任何兩個城鎮間都可以實現交通 但不一定有直接的道路相連,只要互相間接通過道路可達即可 問最少還需要建設多少條道路?input 測試輸入包含若干測試用例。...
並查集(暢通工程)
某省調查城鎮交通狀況,得到現有城鎮道路統計表,表中列出了每條道路直接連通的城鎮。省 暢通工程 的目標是使全省任何兩個城鎮間都可以實現交通 但不一定有直接的道路相連,只要互相間接通過道路可達即可 問最少還需要建設多少條道路?input 測試輸入包含若干測試用例。每個測試用例的第1行給出兩個正整數,分別...
HDU 1232 暢通工程(並查集)
題意 有n個城鎮,已經現在已經有m條道路,每條道路連線兩個城鎮 可以重複連線 目標是使任意兩個城鎮間都可以實現交通 不一定有直接的道路相連,只要互相間接通過道路可達即可 求最少還需要建設多少條道路。本題看上去像圖的連通性問題,和圖論有關,但是其實不必用圖論的那些演算法解決。說這話是因為這是並查集配的...