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(并查集,简单)

B - The Suspects Time Limit:1000MS     Memory Limit:20000KB     64bit IO Format:%I64d & %I64u Su...
  • s1124yy
  • s1124yy
  • 2016年05月19日 12:06
  • 175

The Suspects(POJ 1611)(裸并查集)

The Suspects(POJ 1611)(裸并查集)
  • Ema1997
  • Ema1997
  • 2016年08月17日 17:38
  • 167

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 并查集

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

POJ-1611 The Suspects (并查集)

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

并查集--POJ - 1611 The Suspects

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

POJ1611 The Suspects(并查集)

第一次学并查集,总算对它有了一定的了解,基本就是连通的集合的问题 参考博客:基本概念   结合一些具体问题 题意: 学校中一共有m个学生,n个组,学生编号从0~m-1,现在学生0感冒了,如果组中有一人...

POJ1611 The Suspects 并查集求解

The SuspectsTime Limit: 1000MS Memory Limit: 20000KTotal Submissions: 10780 Accepted: 5110Descriptio...

POJ 1611 The Suspects(并查集)

POJ1611The Suspects(并查集) 现在有n个学生(从0号到n-1号),其中0号学生是有可能非典的,只要和被怀疑有非典的学生在一个社团的学生都是有可能有非典的且需要被隔离,但是学校有很多...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 1611 The Suspects( 并查集)
举报原因:
原因补充:

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