POJ1182 食物鏈 關係並查集

2021-08-19 13:41:42 字數 711 閱讀 5455

poj1182 食物鏈

/*關係並查集 kind

204ms 768k

*/#include #include const int max=5*1e4+5;

int pa[max],kind[max];

void make_set(int n)//初始化節點

}int find_set(int x)//查詢父節點路徑壓縮

while (x!=pa[x])

return h;

}int union_set(int x,int y,int k)//合併集合

pa[tx]=ty;

kind[tx]=(3-kind[x]+kind[y]+k)%3;//狀態轉移

return 0;

}int main()

else sum+=union_set(x,y,d-1);

}printf ("%d\n",sum);

return 0;

}

//簡單並查集模板

void make_(int n)//初始化

int find_(int x)//尋找父親節點並路徑壓縮

return h;

}int find_(int x)//遞迴版本

void union_(int x,int y)//合併集合

poj 1182 食物鏈(關係並查集)

思路 是poj 1703的簡化版。p x 表示x的根節點,r x 表示p x 與x的關係。r x 0表示p x 與x同類,r x 1表示p x 吃x,r x 2表示x吃p x find x 函式 找x的根節點,同時在這一過程中求出r x r x r tmp 3。r x 表示x與未壓縮父親tmp的關係...

POJ 1182 食物鏈 並查集

此題利用並查集解決。對於每只動物i建立3個元素i a,i b,i c,並用這3 n個元素建立並查集。1 i x表示 i屬於種類x 2 並查集你的每一組表示組內所有元素代表的情況同時發生或不發生。對於每一條資訊,只需要按照下列操作即可 1.第一種 x,y同類,合併x a和y a x b和y b x c...

POJ 1182 食物鏈 (並查集)

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