| ||||||||||
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