这道题,我用的是kruskal里的东西来做的,很遗憾的是当时或许太激动了,把m错写成n了,找了好久都没找到错误在那,最后提交4次才过,可惜可惜啊!
#include<stdio.h>
typedef struct
{
int x;
int y;
}xx;
xx node[30];
int pre2[30];
int find(int x)
{
while(x!=pre2[x])
x=pre2[x];
return x;
}
int unio(int n)
{
int i,a,b,sum=0;
for(i=0;i<n;i++)
{
a=find(node[i].x);
b=find(node[i].y);
if(a!=b)
{
sum++;
pre2[b]=a;
}
else
{
sum++;
break;
}
}
return sum;
}
int main()
{
int n,m,i,pre1[30],p,num;
while(scanf("%d%d",&n,&m)!=EOF)
{
p=1;
num=0;
for(i=1;i<=n;i++)
{
pre1[i]=0;