題意: 中文題就不用說了把~
思路: 帶權並查集
把能確定關係的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...