poj1182食物鏈(種類,帶權並查集

2021-08-17 13:25:45 字數 389 閱讀 7030

題目大意:有三類不同動物,給出給k句話,描述兩個動物間是同類還是捕食關係,若與前面的真話衝突,則判定為假話,輸出假話的數量

思路分析:可用並查集將出現已知關係的動物合併在一起,各個動物到根結點距離對3的不同餘數表示不同的種類,如對3的餘數為0,1,2分別表示不同種的動物。當要將兩物種合併在一起時,可通過修改其中乙個跟結點的權值使這兩種動物滿足關係

#include#includeusing namespace std;int p[100000],a[100000],n;int f(int x)int u(int x,int a,int b) } else else } return 1;}int main() for(i=1;i<=m;i++) printf("%d\n",sum); 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...

poj1182食物鏈 帶權並查集

基本思路 帶權並查集 簡單的理解就是將有關係的點合併到乙個集合,記錄每個點到集合根節點的權重 include include include define max 50010 using namespace std int par max 記錄集合根節點 int offset max 記錄每個節點到...

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