美文网首页
acm训练2019,1,23 poj1611 非典病毒传播 查并

acm训练2019,1,23 poj1611 非典病毒传播 查并

作者: xcpooo | 来源:发表于2018-12-07 16:42 被阅读0次

Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized as a global threat in mid-March 2003. To minimize transmission to others, the best strategy is to separate the suspects from others.
In the Not-Spreading-Your-Sickness University (NSYSU), there are many student groups. Students in the same group intercommunicate with each other frequently, and a student may join several groups. To prevent the possible transmissions of SARS, the NSYSU collects the member lists of all student groups, and makes the following rule in their standard operation procedure (SOP).
Once a member in a group is a suspect, all members in the group are suspects.
However, they find that it is not easy to identify all the suspects when a student is recognized as a suspect. Your job is to write a program which finds all the suspects.
Input
The input file contains several cases. Each test case begins with two integers n and m in a line, where n is the number of students, and m is the number of groups. You may assume that 0 < n <= 30000 and 0 <= m <= 500. Every student is numbered by a unique integer between 0 and n−1, and initially student 0 is recognized as a suspect in all the cases. This line is followed by m member lists of the groups, one line per group. Each line begins with an integer k by itself representing the number of members in the group. Following the number of members, there are k integers representing the students in this group. All the integers in a line are separated by at least one space.
A case with n = 0 and m = 0 indicates the end of the input, and need not be processed.
Output
For each case, output the number of suspects in one line.
Sample Input
100 4
2 1 2
5 10 13 11 12 14
2 0 1
2 99 2
200 2
1 5
5 1 2 3 4 5
1 0
0 0
Sample Output
4
1
1


#include <iostream>
//////////////////////////////////////
using namespace std;

int p[30001], rank_s[30001];


int find(int x) {
    int x_root = x;
    while (p[x_root] != -1) {
        x_root = p[x_root];
    }
    return x_root;

}

int union_v(int x, int y) {
    int x_root = find(x);
    int y_root = find(y);
    if (x_root == y_root) {
        return 0;
    }


    else {
        if (rank_s[x_root] > rank_s[y_root])
            p[y_root] = x_root;
        else if (rank_s[x_root] < rank_s[y_root])
            p[x_root] = y_root;
        else {
            p[x_root] = y_root;
            rank_s[y_root]++;
        }


    }
}


////////////////////////////////////////////////////
//以上均为模板//

int main() {
    int n, m;
    while (cin >> m >> n && (m || n)) {
        for (int i = 0; i < m; i++) {
            p[i] = -1;
            rank_s[i] = 0;
        }



        int t[30005];
        while (n--)
        {
            int a;
            cin >> a;
            for (int i = 0; i < a; i++) {
                cin >> t[i];
            }
            for (int i = 0; i < a - 1; i++) {
                union_v(t[i], t[i + 1]);
            }

        }



        int time = 0;
        for (int i = 0; i < m; i++) {
            if (find(i) == find(0))
                time++;
        }
        cout << time << endl;
    }
}


相关文章

  • acm训练2019,1,23 poj1611 非典病毒传播 查并

    Severe acute respiratory syndrome (SARS), an atypical pne...

  • 复仇者(2)

    蝙蝠看了看旁边的非典病毒。露出了邪恶的笑容。 蝙蝠对非典病毒说,你去中国传播病毒,并且大规模的宣传说野生...

  • 2019.01.26算法题:HDU - 1213

    HDU - 1213 How Many Tables(并查集) 题目地址:http://acm.hdu.edu.c...

  • 抗击疫情,积极应对

    这次的新型冠状病毒与2003年的非典SARS最大的区别是症状轻微、具有传播性,很难防控。2003年的非典SARS感...

  • 新型冠状病毒让我成为了宅男

    自从过了除夕,网络上铺天盖地的在谈新状冠状肺炎病毒这个话题。 有人说它的病毒传播相当于当年的非典。 有人说就是医务...

  • 新型冠状传染病毒来袭

    最近新闻媒体热传 一种新型冠状病毒来袭 据专家断言 该病毒具有传染性 没有17年前非典SARS病毒 传播得厉害 戴...

  • 新型冠状病毒

    这一次新型冠状病毒和以往的非典不一样,它的传播速度非常的快,而且它的传播途径也非常的多。首先这个病毒它非常的小,它...

  • 爱如茉莉

    回望许多年前的那场非典席卷中国,当时非典病毒的狂潮真是来势凶猛,波及范围广又传播迅速,一时间真可谓是到了人人“谈典...

  • 病毒检测到底是怎么回事?

    首先,新病毒出现,并迅速传播。 为了控制病毒传播,研究者必须先收集被感染者的信息。 有两种主要的病毒检测方法起到了...

  • 非典

    非典全称是重症急性呼吸综合征,是由一种名叫SARS冠状病毒引起的急性呼吸道传染病。主要传播方式为近距离飞沫传播或接...

网友评论

      本文标题:acm训练2019,1,23 poj1611 非典病毒传播 查并

      本文链接:https://www.haomeiwen.com/subject/butxhqtx.html