poj1182食物鏈 帶權並查集

2021-07-02 11:32:02 字數 547 閱讀 6262

///基本思路:帶權並查集(簡單的理解就是將有關係的點合併到乙個集合,記錄每個點到集合根節點的權重)

#include #include #include #define max 50010

using namespace std;

int par[max];///記錄集合根節點

int offset[max];///記錄每個節點到根節點的偏移量

int n,m;

void make_set()

}int find_set(int x)

return par[x];

}void union_set(int x,int y,int v)

int main()

if(d==1)

else if(d==2)

if(find_set(a)==find_set(b))

else

union_set(a,b,1);}}

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

return 0;

}

poj 1182 食物鏈 帶權並查集

這個題需要將動物分成3種,每次以y 0為物件,吃他的x為1,需要注意的是下一次碰到x cha函式遞迴更新與x有關的物件 include include include includeusing namespace std define n 50005 int father n num n int c...

poj 1182 食物鏈 帶權並查集

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

POJ 1182 食物鏈(帶權並查集)

a,b,c三種動物,a吃b,b吃c,c吃a。有n個動物,他們編號為1 n。輸入 第一行n,k,分別表示動物個數,給出k句話 有真有假 接下來n行每行一句話,每句的格式為三個整數 d,x,y。x,y為動物編號,d為1時表示x,y是同類,d為2時表示x吃y。說明 假話有三種 1 當前的話與前面的某些真的...