POJ 1182並查集的經典運用

2021-06-18 14:24:56 字數 911 閱讀 6642

tag的取值:1表示x吃px,-1表示px吃x,0表示x與px同類

#include #include #include using namespace std;

typedef struct node;

vectornodes;

int n, k;

void makeset()

}int findset(int index, int& steps)

return nodes[index].parent;

}}void union(int r1, int r2, int t)

int main()

}else

} }

cout << ans << endl;

return 0;

}

tag為-1,0,1時,**寫起來挺費勁的。借鑑了網上的**,將tag的取值改為0,1,2;其中2表示px吃x,0,1取值含義保持不變

#include #include #include using namespace std;

class node;};

vectornodes;

int n, k;

void makeset()

int findset(int i)

void union(int x, int y, int link)

else

}int main()

else

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

return 0;

}

poj1182 食物鏈(經典並查集)

題意 中文題 思路 最詳細的題解 include include include include include include include include include include include include include using namespace std define ma...

POJ 1182 食物鏈 經典並查集

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

POJ 1182 食物鏈 並查集經典

思路 設r x 表示節點x與根結點的關係,px表示x的根結點。記錄每個節點與其父節點的關係,就能很方便知道每個節點以及和它的父節點的關係。struct nodea maxn 關係 0表示同類,1表示父節點吃子節點,2表示子節點吃父節點 現在給定節點x和y,它們的關係是rel,如何判斷這句話是真還是假...