POJ 1611 The Suspects( 并查集)

原创 2016年05月31日 14:26:15

题目:

严重急性呼吸系统综合症( SARS), 一种原因不明的非典型性肺炎,从2003年3月中旬开始被认为是全球威胁。为了减少传播给别人的机会, 最好的策略是隔离可能的患者。 在Not-Spreading-Your-Sickness大学( NSYSU), 有许多学生团体。同一组的学生经常彼此相通,一个学生可以同时加入几个小组。为了防止非典的传播,NSYSU收集了所有学生团体的成员名单。他们的标准操作程序(SOP)如下: 一旦一组中有一个可能的患者, 组内的所有成员就都是可能的患者。然而,他们发现当一个学生被确认为可能的患者后不容易识别所有可能的患者。你的工作是编写一个程序, 发现所有可能的患者。

这道题的思路十分简单是裸的并查集:

# include<stdio.h>
# include<stdlib.h>
int b[30000],a[510][3010],f[30000],n;
int lily2(int x){//找他的祖先节点
    if(f[x]==0 ||f[x]==x)return x;
    f[x]=lily2(f[x]);
    return f[x];
}
void lily(int x,int y){//合并两个并查集
    if(lily2(x)!=lily2(y)){
    f[lily2(x)]=lily2(y); 
   }
}
int main(){
    int m,i,j,k,ans=0;
    while(1){
        ans=0;
        scanf("%d%d",&n,&m);//读入
        if(n==0 &&m==0)break;
        for(i=1;i<=n;i++)f[i]=i;
        for(i=1;i<=m;i++){
            scanf("%d",&k);
            scanf("%d",&a[i][1]);
            a[i][1]+=1;
            for(j=2;j<=k;j++){
                scanf("%d",&a[i][j]);
                a[i][j]+=1;//我习惯从一开始,所以每个加一
                lily(a[i][1],a[i][j]);//将在同一个小组的放进同一个并查集
            }

        }

      for(i=1;i<=n;i++)if(lily2(1)==lily2(i))ans++;//如果和零在一个并查集则可能传染
      printf("%d\n",ans);
   }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

POJ 1611 The Suspects(带权并查集)

题意:有中文,不译。 解题思路:将每个个体的权值当做1,最后就是求和0相同根节点的总权值,也就是多少个个体。就成了一个带权并查集,在合并时,将被合并的根节点元素所拥有的总权值,交给新的根节点,简单题...

POJ - 1611 The Suspects(并查集)

The SuspectsTime Limit: 1000MS Memory Limit: 20000K Total Submissions: 41017 Accepted: ...

POJ 1611 The Suspects【简单并查集】

The Suspects Time Limit: 1000MS   Memory Limit: 20000K Total Submissions: 30033   ...

poj 1611 The Suspects(并查集)

The Suspects Time Limit: 1000MS   Memory Limit: 20000K Total Submissions: 24247   ...

POJ 1611 The Suspects 并查集

N - The Suspects Time Limit:1000MS     Memory Limit:20000KB     64bit IO Format:%lld & %...

poj 1611 The Suspects 并查集

The SuspectsTime Limit: 1000MS Memory Limit: 20000KTotal Submissions: 10873 Accepted: 5158Descriptio...

POJ-1611 The Suspects (并查集)

POJ-1611 The Suspects (并查集)原题链接:http://poj.org/problem?id=1611题目大意: 将学生逐一编号,并分成 k 个小组,有传染病SARS,只要小组...

POJ 1611 The Suspects (并查集)

题目链接: http://vjudge.net/problem/viewProblem.action?id=10536 题目意思:

并查集--POJ - 1611 The Suspects

Description 严重急性呼吸系统综合症( SARS), 一种原因不明的非典型性肺炎,从2003年3月中旬开始被认为是全球威胁。为了减少传播给别人的机会, 最好的策略是隔离可能的患者。 在No...

POJ1611 The Suspects(并查集)

第一次学并查集,总算对它有了一定的了解,基本就是连通的集合的问题 参考博客:基本概念   结合一些具体问题 题意: 学校中一共有m个学生,n个组,学生编号从0~m-1,现在学生0感冒了,如果组中有一人...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)