hdu1213 並查集板子

2022-05-20 12:00:40 字數 1321 閱讀 8529

並查集是一種支援合併與查詢的資料結構,在森林中進行操作,加上路徑壓縮,合併和查詢的時間複雜度幾乎都是常數。並查集最基礎的作用就是建立不同的點之間的所謂的「關係」,並且查詢兩者是否有關係。並查集的乙個特點是向量型關係傳遞性,比如a->b b->c,則有a->c,是不是特別像向量之間的傳遞?在很多時候並查集的應用都涉及到了這個性質。並查集的**可比線段樹主席樹友好一點orz hdu1213板題,**如下:

1 #include2

using

namespace

std;

3 typedef unsigned int

ui;4 typedef long

long

ll;5 typedef unsigned long

long

ull;

6#define pf printf

7#define mem(a,b) memset(a,b,sizeof(a))

8#define prime1 1e9+7

9#define prime2 1e9+9

10#define pi 3.14159265

11#define lson l,mid,rt<<1

12#define rson mid+1,r,rt<<1|1

13#define scand(x) scanf("%llf",&x)

14#define f(i,a,b) for(int i=a;i<=b;i++)

15#define scan(a) scanf("%d",&a)

16#define mp(a,b) make_pair((a),(b))

17#define p pair18

#define dbg(args) cout<<#args<<":"<19

#define inf 0x3f3f3f3f

20 inline int

read()

24while(isdigit(ch))ans=(ans<<3)+(ans<<1)+ch-'

0',ch=getchar();

25return ans*w;26}

27const

int maxn=1e6+10;28

intn,m,t;

29int

f[maxn];

30set

s;31void

init()

3236

int find(int

x)37 42

void union(int x,int

y)43 52

}5354int

main()

5569 }

hdu1213並查集模板

題意 n個人吃飯 給出認識的關係,認識的才能在一張桌子上吃飯,求最少需要幾張桌子 思路 沒給出兩人關係,放入 並查集中 最後查詢父節點的數目即可 include include include include include include using namespace std int n,m i...

爆炒洋蔥圈 HDU 1213 並查集初學

雖說做專案會讓人有成就感,但是演算法這種考驗基礎的東西不能落下。更何況我演算法那麼差呢。最近在刷學校的oj準備ccf,刷到了並查集,寫下這篇文章供自己以後和後來人查閱。如有紕漏,敬請指教。並查集是一種樹形的資料結構,用於處理一些不相交集合的合併和查詢問題。常常在使用中以森林來表示 descripti...

HDU 1213有意思的並查集 掌門

深夜未耕 乙個典型的並查集 參考 借用了裡面的掌門學說注釋這道題 include using namespace std int pre 1010 你不知道吧 我乙個人在寢室 放著楊千嬅的小星星 對面你發來一句話 我對著螢幕空空地說 我喜歡你 我喜歡你你聽到了嗎 聽不到也沒關係 我在慢慢像你靠近 i...