poj1182 帶權並查集

2021-09-10 16:48:01 字數 462 閱讀 7457

對於k,x,y

k=0,1,2分別表示同類,x吃y,x被y吃

如果x吃y,y吃z,則z吃x,所以k分別為1,1,2

如果x被y吃,y被z吃,則x吃z,k分別為2,2,1

如果x和y同類,y吃z,則x吃z,k分別為0,1,1

如果x和y同類,y被z吃,則x被z吃,k分別為0,2,2

我們發現(k1 + k2) % 3 = k3

#include #include #include #include using namespace std;

int const n = 50000 + 10;

int n,k,fa[n],re[n];

int find(int x)

return fa[x];

}int main()else

} }cout

}

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...