POJ 1182 食物鏈 並查集

2021-06-22 04:23:54 字數 656 閱讀 1276

此題利用並查集解決。

對於每只動物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和y-c。

2.第二種:x吃y,,,合併x-a和y-b、x-b和y-c、x-c和y-a。

當然,在合併之前,需要判斷合併是否會產生矛盾,若有矛盾,則結果+1;

**:

#include #include using namespace std;

#define max_k 100000

int par[max_k],rank[max_k];

int t[max_k],x[max_k],y[max_k];

//以下是並查集的函式

void init(int n)

if(t==1) //xy是同類

else

}else //x吃y

else

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

return 0;

}



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

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 include includeusing namespace std int total int n,m,a,b,c int f 500005 rank ...