食物鏈,洛谷之提高歷練地,並查集

2021-08-18 19:39:22 字數 738 閱讀 4281

正文

第二題:食物鏈

這題經典啊!!!我們可以想象,如果我們可以搞乙個並查集來維護x的同夥,天敵和食物就好了。

我們想到了開三倍空間來維護x的天敵,同夥和食物。

我們假設有一句話是x和y是同類,那麼要滿足兩個條件,x不吃y,而且y不吃x。如果都滿足,那麼我們就可以把他們聯絡起來。

我們再假設一句話是x吃y,那麼要滿足的條件顯然有,x和y不為同類,而且y不吃x。

我們再把他們聯絡起來即可。

怎麼聯絡呢?,我們看**吧~

#include#include#includeint n,m;

int f[150010];//1<=i<=50000 1到50000表示i的同類,i+n表示i的食物,i+2*n為i的天敵。

int ans=0;

int findpa(int x)

bool comp(int x,int y)

void couple(int x,int y)

int main()

if(k==1)

couple(x,y);

couple(x+n,y+n);

couple(x+2*n,y+2*n);

} else

couple(x,y+2*n);

couple(x+n,y);

couple(x+2*n,y+n);

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

}

洛谷 並查集 食物鏈

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

食物鏈 洛谷2024 並查集

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

並查集 食物鏈

noi2001,水題,但是我調了很久。食物鏈time limit 1000ms memory limit 10000k total submissions 27766 accepted 8066 description 動物王國中有三類動物a,b,c,這三類動物的食物鏈構成了有趣的環形。a吃b,b吃...