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