ACM 九度1012 1109 並查集

2021-07-27 11:10:35 字數 625 閱讀 4757

題目【暢通工程】}:

思路:類似於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屬於另乙個朋...