poj1182 帶權並查集

2022-02-20 03:02:31 字數 721 閱讀 5556

題意: 中文題就不用說了把~

思路: 帶權並查集

把能確定關係的x, y 合併到並查集中;

我們可以用rank[x]記錄x與其父親節點的關係, 注意不是x與根節點的關係,是其與父親節點的關係!!!

rank[x]=0表示x與其父親屬於同乙個類;

rank[x]=1表示x的父親吃x;

rank[x]=2表示x吃x的父親;

1 #include 2 #include 3

#define maxn 50010

4using

namespace

std;56

int rank[maxn], pre[maxn]; //

***rank陣列儲存當前節點與父親節點的關係!注意不是與根節點的關係!!!78

int find(int x)

14return

pre[x];15}

1617

int jion(int x, int y, int

d)24 }else

28return0;

29}3031

int main(void)38

while(k--)else

if(d==2&&x==y)else48}

49 printf("

%d\n

", ans);

50return0;

51 }

poj 1182 帶權並查集

description 動物王國中有三類動物a,b,c,這三類動物的食物鏈構成了有趣的環形。a吃b,b吃c,c吃a。現有n個動物,以1 n編號。每個動物都是a,b,c中的一種,但是我們並不知道它到底是哪一種。有人用兩種說法對這n個動物所構成的食物鏈關係進行描述 第一種說法是 1 x y 表示x和y是...

poj1182 帶權並查集

題意 中文題就不描述了 思路 帶權並查集模板題 加入乙個陣列 表示這個點和它父節點的關係 表示同類,表示父親吃它,表示它吃父親 每次需要更新和父親之間的關係 include includeconst int n 50005 int p n r n n,k void init int x int fi...

POJ 1182 帶權並查集

食物鏈 time limit 1000ms memory limit 10000k total submissions 89563 accepted 26905 description 動物王國中有三類動物a,b,c,這三類動物的食物鏈構成了有趣的環形。a吃b,b吃c,c吃a。現有n個動物,以1 n...