面試題 並查集

2021-10-05 07:41:40 字數 841 閱讀 6133

n個數,分別是1-n,現把他們分堆並給出兩兩關係例如2-5 1-5,給出關係的兩個數必須在同一堆,問最大分堆數。

建圖dfs或者並查集。

沒有寫,先貼乙個模板上來。

// 1389.cpp : 定義控制台應用程式的入口點。

// 並查集,求每個集合中的元素個數

// 在合併時將子樹中的結點數目加到根結點

#include

"stdafx.h"

#include

#include

#define max 100000+5

int father[max]

;//父節點

int people[max]

;//每個集合中的元素個數

int rank[max]

;//秩

intfind

(int x)

//合併並返回合併後的祖先序號

void

union

(int x,

int y)

else

}//計算集合的個數

intcount_sets

(int n)

intmain()

char cmd;

int x, y;

while

(m--

)else

if(cmd ==

'q')

}printf

("集合個數:%d\n"

,count_sets

(n))

;system

("pause");

return0;

}

並查集 並查集

本文參考了 挑戰程式設計競賽 和jennica的github題解 陣列版 int parent max n int rank max n void init int n int find int x else void union int x,int y else 結構體版 struct node ...

小公尺麵試題 朋友圈問題 並查集

假如已知有n個人和m對好友關係 存於數字r 如果兩個人是直接或間接的好友 好友的好友的好友.則認為他們屬於同乙個朋友圈,請寫出程式求出這n個人裡一共有多少朋友圈。例如 n 5,m 3,r 表示有5個人,1和2是好友,2和3是好友,4和5是好友。則1,2,3屬於乙個朋友圈,4,5屬於另乙個朋友圈,結果...

面試題集 redis

1.redis常用的五種資料型別 1.string 字串 string是簡單的 key value 鍵值對,value 不僅可以是 string,也可以是數字。它是redis最基本的資料型別,乙個redis中字串value最多可以是512m。2.hash 雜湊 redis hash 是乙個鍵值對集合...