暢通工程
#includeint n,m,a,b;
int road[1010];
int findroot(int x)
int main()
for(int i=1;i<=m;i++)
} for(int i=1;i<=n;i++)
printf("%d\n",sum-1);
} return 0;
}
把連線在一起的一些結點看成是一棵樹,然後不斷地更新所有的結點,直到都在一棵樹上面。
原理:使用雙親結點表示法來表示一棵樹,根節點使用-1來表示。剛開始的時候假設所有的城鎮都沒有相連,所以把所有的城鎮結點都表示為-1。
然後把已經相連的城鎮進行輸入
for(int i=1;i<=m;i++)
}
最後找出所有為-1的結點,這就是還剩幾棵樹,然後需要的道路數目就是樹的數目減一。 並查集 暢通工程
problem description 某省調查城鎮交通狀況,得到現有城鎮道路統計表,表中列出了每條道路直接連通的城鎮。省 暢通工程 的目標是使全省任何兩個城鎮間都可以實現交通 但不一定有直接的道路相連,只要互相間接通過道路可達即可 問最少還需要建設多少條道路?input 測試輸入包含若干測試用例。...
並查集(暢通工程)
某省調查城鎮交通狀況,得到現有城鎮道路統計表,表中列出了每條道路直接連通的城鎮。省 暢通工程 的目標是使全省任何兩個城鎮間都可以實現交通 但不一定有直接的道路相連,只要互相間接通過道路可達即可 問最少還需要建設多少條道路?input 測試輸入包含若干測試用例。每個測試用例的第1行給出兩個正整數,分別...
暢通工程 並查集演算法
馬上寒假還有七天都結束了,今天遇到了這個題目,好久都沒有寫部落格感覺都已經費了,今天就來寫一下部落格,算是紀念一下這個暑假 大概我已經費了 不說廢話了,現在步入正題 並查積是一種高效的資料結構,對於解決一些聯通性問題有著高效果的效率,演算法主要就三個部分,並查集由乙個整數型的陣列和兩個函式構成。陣列...