并查集为啥错了?大牛找找错!谢谢

5 条评论

  • @ 2016-08-06 21:28:11

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    int n,k,m,t,ans,a[201];
    int main()
    {
    cin>>n>>k;
    for(int i=1;i<=n;++i)
    {
    t=0;
    while(cin>>m)
    {
    if(m==0) break;
    t++;
    }
    a[i]=t;
    }
    for(int i=1;i<=n;++i)
    if(a[i]>=k)
    ans++;
    cout<<ans<<endl;
    return 0;
    }

  • @ 2015-09-29 11:36:46

    ..

  • @ 2015-08-14 21:27:29

    发现不用这么想 , 不好意思,原来看错题了
    #include <iostream>
    #include <stdio.h>
    #include <string.h>
    using namespace std;
    int talk[300];
    int mem[300];
    int find(int x)
    {
    if(talk[x]==x)
    return x;
    else return talk[x]=find(talk[x]);
    }
    int main()
    {
    int n,k;
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++)
    {
    mem[i]=1;
    talk[i]=i;
    }
    for(int i=1;i<=n;i++)
    {
    int a;
    int x=find(i);
    scanf("%d",&a);
    for(;;)
    {
    if(a==0)
    break;
    int y=find(a);
    if(x!=y)
    {
    talk[y]=x;
    mem[x]+=mem[y];
    }
    scanf("%d",&a);

    }
    }

    int ans=0;
    for(int i=1;i<=n;i++)
    {
    int b=find(i);
    if(mem[b]>k)
    ans++;
    }
    printf("%d",ans);
    }

  • @ 2015-08-14 20:16:58

    这题标准做法是求有向图的强连通分量

    • @ 2017-11-04 10:31:11

      过不去,,我试过。。。

  • @ 2015-08-12 23:30:18

    不是告诉你用贪心了么= =以及程序在哪= =

  • 1

信息

ID
1021
难度
3
分类
贪心 点击显示
标签
递交数
6432
已通过
3225
通过率
50%
被复制
24
上传者