爆了一个点求助

#include<stdio.h>
int main()
{
    int N;
    int b[205];
    int i,j;
    int sum=0;
    scanf("%d",&N);
    for(i=1;i<=N;i++)
    b[i]=i;
    for(i=1;i<=N;i++)
    {
        scanf("%d",&j);
        if(j!=0)
        if(b[j]==j)
        {
            if(b[i]==i)
            b[j]=i;
            else
            b[j]=b[i];
        }
        while(j!=0)
        {
            scanf("%d",&j);
            if(b[j]==j)
            {
                if(b[i]==i)
                b[j]=i;
                else
                b[j]=b[i];
            }
        }
    }
    for(i=1;i<=N;i++)
    {
//      printf("%d ",b[i]);
        if(b[i]==i)
        sum++;
    }
    
    printf("%d",sum);
    return 0;
} 

思路是并查集,给几个数据让我改改也行

0 条评论

目前还没有评论...

信息

ID
1023
难度
3
分类
图结构 | 强连通分量 点击显示
标签
递交数
3791
已通过
1880
通过率
50%
上传者