杭电acm1232

来源:互联网 发布:淘宝考试答题器 编辑:程序博客网 时间:2024/04/30 19:54

为啥ans要 -1 ? 未解。

#include <stdio.h>#define N 1000struct d{int x;int y;}buf[N];int parent[N];int find(int x) {return x==parent[x] ? x : find(parent[x]);}void uni(int x, int y) {int a = find(x);int b = find(y);if(a==b)return ;parent[a] = b;}int main() {int n, m, i, ans;while(~scanf("%d", &n) && n) {scanf("%d", &m);for(i=0; i<n; i++)parent[i] = i;for(i=0; i<m; i++) {scanf("%d%d", &buf[i].x, &buf[i].y);//caution! -1 neededuni(buf[i].x-1, buf[i].y-1);}ans =0;for(i=0; i<n; i++) {if(parent[i]==i)ans ++;}printf("%d\n", ans-1);}return 0;}


0 0
原创粉丝点击