大家快來a水題
time limit: 1000ms memory limit: 65536kb
submit statistic discuss
problem description
海上有n(1<= n <=2000)個島,編號從1到n,同一部落的島嶼之間有直接或間接的路相連,不同部落之間無路可通。現在給出m(1<= m <= n*(n-1)/2)條路。問這片海域上共有多少部落。
input
多組輸入。每組第一行輸入n,m。接下來m行每行,每行兩個整數u,v代表島u與v之間有一條路。
output
每組資料輸出乙個整數,代表部落數。
example input
3 1
1 2
3 2
1 2
1 3
example output
2 1
hint
#include
#include
#include
#include
#include
#include
using
namespace
std;
int b[2010];
int find(int x)
int j = x;
//查完後記錄節點最終的根節點,降低樹的高度,提高效率。
while(b[j]!=-1)
return i;
}void merge(int x,int y)
}int main()
for(int i = 0;iint x,y;
scanf("%d %d",&x,&y);
merge(x,y);
}int sum = 0;
for(int i = 1;i<=n;i++)
}printf("%d\n",sum);
}return
0;
}
大家快來A水題
time limit 1000ms memory limit 65536k 有疑問?點這裡 1 n 2000 1 m n n 1 2 多組輸入。每組第一行輸入n,m。接下來m行每行,每行兩個整數u,v代表島u與v之間有一條路。每組資料輸出乙個整數,代表部落數。3 1 1 23 2 1 21 3 2 ...
大家快來A水題 2805
problem description 海上有n 1 n 2000 個島,編號從1到n,同一部落的島嶼之間有直接或間接的路相連,不同部落之間無路可通。現在給出m 1 m n n 1 2 條路。問這片海域上共有多少部落。input 多組輸入。每組第一行輸入n,m。接下來m行每行,每行兩個整數u,v代表...
2805 大家快來A水題
1 include 2 include 3 int n,m 並查集。4int a 100000 5 void creat 用來給每個單位賦值的,每個單位的值代表他們的上一級。612 return 13 14int find int x 尋找上一級的上一級,知道找到幕後 1521 return a x...