題目大意:太水了,都有點記不清了;
解題思路:並查集來做,認識的人都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,是不是特別像向量之間的傳遞?在很多時候並查集的應...