hdu1213解題報告

2021-07-03 12:24:38 字數 467 閱讀 2334

題目大意:太水了,都有點記不清了;

解題思路:並查集來做,認識的人都find一發即可,最後在遍歷一遍,看有幾個p[i]==i的,就有幾張桌子

#include#include#include#includeusing namespace std;

const int maxn=1000+10;

int p[maxn];

void makeset(int n)

}int findset(int x)

void combine(int a, int b)

}int main()

{ int t;

scanf("%d",&t);

while(t--)

{int n,m;

scanf("%d%d",&n,&m);

makeset(n);

int a,b;

for(int i=0;i

HDU1213 聯通集裸題

今天是伊格納修斯的生日。他邀請了很多朋友。現在是晚餐時間。伊格納修斯想知道他至少需要多少桌子。你必須注意到並非所有的朋友都互相認識,而且所有的朋友都不想和陌生人呆在一起。這個問題的乙個重要規則是,如果我告訴你a知道b,b知道c,那意味著a,b,c彼此了解,所以他們可以留在乙個表中。例如 如果我告訴你...

hdu1213並查集模板

題意 n個人吃飯 給出認識的關係,認識的才能在一張桌子上吃飯,求最少需要幾張桌子 思路 沒給出兩人關係,放入 並查集中 最後查詢父節點的數目即可 include include include include include include using namespace std int n,m i...

hdu1213 並查集板子

並查集是一種支援合併與查詢的資料結構,在森林中進行操作,加上路徑壓縮,合併和查詢的時間複雜度幾乎都是常數。並查集最基礎的作用就是建立不同的點之間的所謂的 關係 並且查詢兩者是否有關係。並查集的乙個特點是向量型關係傳遞性,比如a b b c,則有a c,是不是特別像向量之間的傳遞?在很多時候並查集的應...