| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
我也贴个不知为什么Wa的In Reply To:为什么一直WA? 有什么地方该注意? 谁能给几组特殊的测试数据啊 Posted by:fishks at 2005-08-04 17:18:36 #include <stdio.h>
#include <algorithm>
using namespace std;
int i,j,n,m,ans;
int const MAXN = 50000;
int uset[MAXN+1];
int Root(int v)
{
if(uset[v] == v)
return v;
uset[v] = Root(uset[v]);
return uset[v];
}
void Unite(int a,int b)
{
uset[uset[b]] = uset[a];
}
int main()
{
int ncase = 1;
while(scanf("%d%d",&n,&m) && n+m)
{
for(i=0; i<=n; i++)
uset[i] = i;
for(i=0; i<m; i++)
{
scanf("%d%d",&a,&b);
if(Root(a)!=Root(b))
Unite(a,b);
}
sort(uset+1,uset+n+1);
ans = 1;
for(i=2; i<=n; i++)
{
// printf("%d ",uset[i]);
if(uset[i]!=uset[i-1])
ans++;
}
printf("case %d: %d\n",ncase,ans);
ncase++;
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator