題目【暢通工程】}:
思路:類似於kruskal演算法對資料進行預處理,分成不同集合,集合個數減一就是答案
【1109:只要判斷最後集合個數是否為1即可】
感悟:尋找根節點時,進行了【路徑壓縮】,即在查詢過程中,路徑上所有點的父節點都重新賦值,直接指向根節點;這樣有效降低搜尋樹的高度,提高了效率
#include
#define maxsize 1005
using
namespace
std;
int tree[maxsize];//記錄城市的根節點
struct road road[maxsize];
int findroot(int i)
}int main()
int sum = 0;
for (int i = 1; i <= n; i++)
printf("%d\n", sum - 1); //連通sum個版塊,需要sum-1條路
}return
0;}
九度 1035 並查集相關
題目1035 找出直系親屬 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 1738 解決 706 題目描述 如果a,b是c的父母親,則a,b是c的parent,c是a,b的child,如果a,b是c的 外 祖父,祖母,則a,b是c的grandparent,c是a,b的grandchil...
九度OJ 朋友圈 並查集
題目描述 假如已知有n個人和m對好友關係 存於數字r 如果兩個人是直接或間接的好友 好友的好友的好友.則認為他們屬於同乙個朋友圈,請寫程式求出這n個人裡一共有多少個朋友圈。假如 n 5 m 3 r 表示有5個人,1和2是好友,2和3是好友,4和5是好友,則1 2 3屬於乙個朋友圈,4 5屬於另乙個朋...
九度OJ 朋友圈 並查集
題目描述 假如已知有n個人和m對好友關係 存於數字r 如果兩個人是直接或間接的好友 好友的好友的好友.則認為他們屬於同乙個朋友圈,請寫程式求出這n個人裡一共有多少個朋友圈。假如 n 5 m 3 r 表示有5個人,1和2是好友,2和3是好友,4和5是好友,則1 2 3屬於乙個朋友圈,4 5屬於另乙個朋...