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

The Suspects Time Limit: 1000MS   Memory Limit: 20000K Total Submissions: 23337   ...
  • u014355480
  • u014355480
  • 2014年11月21日 09:10
  • 1161

The Suspects poj 1611 【并查集】

Description Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology,...
  • yuzhiwei1995
  • yuzhiwei1995
  • 2015年08月13日 15:49
  • 160

POJ 1611 The Suspects (并查集)

链接:http://poj.org/problem?id=1611 The Suspects Time Limit: 1000MS   Memory Limit: 20...
  • u012823258
  • u012823258
  • 2014年03月05日 16:38
  • 618

POJ 1611 The Suspects 【并查集】

The Suspects Time Limit:1000MS Memory Limit:20000KB 64bit IO Format:%I64d & %I64u SubmitSt...
  • qq_33184171
  • qq_33184171
  • 2016年03月09日 13:08
  • 220

并查集 POJ 1611 The Suspects

并查集
  • nameofcsdn
  • nameofcsdn
  • 2016年08月10日 23:23
  • 1069

POJ 1611 The Suspects 并查集

表示刚接触并查集做这道题对并查集
  • u013738743
  • u013738743
  • 2014年04月10日 17:34
  • 488

POJ 1611 The Suspects——并查集

建立集合看看那些人和0号人在一个集合中就可以 #include #include #include #include using namespace std; const int MAXN ...
  • hao_zong_yin
  • hao_zong_yin
  • 2017年09月14日 12:01
  • 77

POJ 1611 The Suspects(并查集)

The Suspects Time Limit: 1000MS   Memory Limit: 20000K Total Submissions: 41098   ...
  • lwgkzl
  • lwgkzl
  • 2017年08月08日 09:13
  • 62

【POJ 1611 The Suspects】+ 并查集

The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 35581 Accepted...
  • WYK1823376647
  • WYK1823376647
  • 2017年01月19日 17:40
  • 105

并查集 poj 1611 The Suspects

The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 43138 Accepted...
  • wuxiaowu547
  • wuxiaowu547
  • 2017年11月27日 09:48
  • 25
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 1611 The Suspects( 并查集)
举报原因:
原因补充:

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