POJ 1182 食物鏈(向量偏移並查集)

2021-09-10 15:51:47 字數 964 閱讀 7388

題目大意:中文題,很容易就理解。

思路:偶然間看到某大佬的這個 向量偏移的並查集的方法,就拿來做例題了。

向量偏移,具體**已經不可考究了,不知是那位神仙發現的這種方法,就是說,把並查集的關係也加上權值(似乎是帶權並查集的另一種稱呼),具體的學習部落格見:

以後這就是一種思路了,用向量的思路來理解並查集,話說搞懂這個東西也不簡單啊,畢竟作者靈魂打字

ac:

#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std; 

#define ll long long

#define pair pair//#define max(a,b) (a)>(b)?(a):(b)

//#define min(a,b) (a)<(b)?(a):(b)

#define clean(a,b) memset(a,b,sizeof(a))// 水印

//std::ios::sync_with_stdio(false);

// register

const int maxn=5e4+10;

const int inf32=0x3f3f3f3f;

const ll inf64=0x3f3f3f3f3f3f3f3f;

const ll mod=1e9+7;

const double pi=acos(-1.0);

struct nodef[maxn];

int n,m;

void intt()

if(rela==2&&a==b)

if(rela==1)

else

} else

else

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

}

poj1182食物鏈 並查集 向量偏移

搞了好久才弄明白。之前學並查集從來沒想過能這麼用,並查集 向量偏移!與一般並查集只開乙個father陣列不同,還要開乙個ralation陣列用來記錄子節點與父節點的關係,對於此題,顯然每個點對應根節點可能有三種關係,我用ralation i 0記為i與根節點是同類,relation i 1記為i被根...

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