| ||||||||||
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 |
为什么我写的并查集就不对呢? 牛哥帮小弟看看,小弟第一次发帖, 感谢!#include<stdio.h> #include<algorithm> #include<stdlib.h> #include<string.h> int num[1000001]; int parent[100001]; void chushihua(int n) { int i ; for(i = 0 ; i < n; i++){ parent[i] = i; num[i] = 1; } } void hebin(int x , int y) { if(num[x] >= num[y]){ num[x]+=num[y]; parent[y] = x; } else{ num[y]+=num[x]; parent[x] = y; } } int find(int t) { if(t!=parent[t]) parent[t] = find(parent[t]); return parent[t]; } int main() { int count ; int n , m ,i ,x, y ,xx, yy , flag; int ans = 1; scanf("%d",&count); while(count --) { flag = 1; scanf("%d%d",&n,&m); chushihua(n); for(i = 0 ; i < m ; i++) { scanf("%d%d",&xx,&yy); x = find(xx); y = find(yy); if(x == y) flag = 0; hebin(x, y); } printf("Scenario #%d:\n",ans++); if(flag) printf("No suspicious bugs found!\n"); else printf("Suspicious bugs found!\n"); if(count) printf("\n"); } system("pause"); return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator