青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-167  評(píng)論-8  文章-0  trackbacks-0
文章作者:yx_th000 文章來(lái)源:Cherish_yimi (http://www.cnblogs.com/cherish_yimi/) 轉(zhuǎn)載請(qǐng)注明,謝謝合作。

并查集學(xué)習(xí)--并查集詳解

The Suspects

Time Limit: 1000MSMemory Limit: 20000K
Total Submissions: 5572Accepted: 2660

Description

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
我的思路: 典型的并查集,最初各自為集,然后每個(gè)group進(jìn)行合并,等到所有的group合并完,題目也就解決了,因?yàn)樵诤喜⒌臅r(shí)候,如果哪兩個(gè)group中有重合的元素,則那個(gè)后來(lái)的group會(huì)由于按秩合并的原則自動(dòng)合并到 先有的集合當(dāng)中,奧妙便在其中。下面是代碼:

 1#include<iostream>
 2using namespace std;
 3
 4int n, m, i, j;
 5int father[30005], num[30005];
 6
 7void makeSet(int n)
 8{
 9    for(i = 0; i < n; i++)
10    {
11        father[i] = i; //使用本身做根
12        num[i] = 1;
13    }

14}

15int findSet(int x)
16{
17    if(father[x] != x) //合并后的樹的根是不變的
18    {    
19        father[x] = findSet(father[x]);
20    }

21    return father[x]; 
22}

23
24void Union(int a, int b)
25{
26    int x = findSet(a);
27    int y = findSet(b);
28    if(x == y)
29    {
30        return;
31    }

32    if(num[x] <= num[y])
33    {
34        father[x] = y;
35        num[y] += num[x];
36    }

37    else 
38    {
39        father[y] = x;
40        num[x] += num[y];
41    }

42}

43
44int main()
45{
46    while(scanf("%d %d"&n, &m)!=EOF && n != 0)
47    {
48        makeSet(n);
49        for(i = 0; i < m; i++)
50        {
51            int count, first, b;
52            scanf("%d %d",&count, &first);
53            for(j = 1; j < count; j++)
54            {
55                scanf("%d",&b);
56                Union(first,b);
57            }

58        }

59        printf("%d\n",num[findSet(0)]);
60    }

61    return 0;
62}

63
另外,上面并查集的根我是采用數(shù)字本身的,然后路徑壓縮尋找父親節(jié)點(diǎn)是采用遞歸的,下面貼出,采用-1做根和使用非遞歸實(shí)現(xiàn)的部分代碼:

 1void makeSet(int n)
 2{
 3    for(i = 0; i < n; i++)
 4    {
 5        father[i] = -1;
 6        num[i] = 1;
 7    }

 8}

 9//非遞歸實(shí)現(xiàn)
10int findSet(int x)
11{
12    while(father[x] != -1)   //根為-1
13    {
14        x = father[x];
15    }

16    return x;
17}

18
posted on 2011-12-24 15:15 老馬驛站 閱讀(232) 評(píng)論(0)  編輯 收藏 引用 所屬分類: c++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日本国产一区| 美女精品一区| 国内精品嫩模av私拍在线观看 | 国产精品成人一区二区三区夜夜夜 | 国产农村妇女毛片精品久久麻豆| 欧美午夜寂寞影院| 国产毛片久久| 亚洲激情在线激情| 99国内精品久久| 亚洲欧美日韩在线| 久久永久免费| 亚洲免费成人av| 午夜亚洲性色福利视频| 免费h精品视频在线播放| 欧美亚一区二区| 在线观看免费视频综合| aaa亚洲精品一二三区| 香蕉成人伊视频在线观看| 美女黄网久久| 亚洲性感美女99在线| 久久久久久久久久久成人| 欧美久久久久久蜜桃| 国产欧美一区二区精品性| 亚洲精品人人| 久久国产婷婷国产香蕉| 亚洲国语精品自产拍在线观看| 在线视频亚洲| 欧美成人免费全部观看天天性色| 国产精品羞羞答答xxdd| 91久久精品一区| 久久精品国产久精国产思思| 亚洲三级免费| 女女同性精品视频| 国内精品久久久久国产盗摄免费观看完整版| 最新69国产成人精品视频免费| 欧美一区三区三区高中清蜜桃| 亚洲精品一区二区网址| 久久综合给合久久狠狠色| 国产乱码精品1区2区3区| 夜夜夜久久久| 欧美激情第三页| 久久精品一本| 国产日韩在线看片| 欧美成人综合网站| 一本大道久久精品懂色aⅴ| 久久人体大胆视频| 国产主播一区二区三区| 午夜精品一区二区三区在线播放| 最新成人在线| 免费中文日韩| 亚洲国产一区二区a毛片| 久久午夜精品| 久久爱www.| 国产一区二区三区无遮挡| 先锋资源久久| 先锋亚洲精品| 精品成人一区| 美女国产一区| 麻豆91精品| 亚洲精品影院在线观看| 最新69国产成人精品视频免费| 欧美承认网站| 一区二区三区视频在线| 一区二区免费在线观看| 国产精品每日更新| 欧美亚洲日本国产| 亚洲女爱视频在线| 国产视频一区免费看| 久久精品视频在线看| 久久久999精品| 91久久线看在观草草青青| 亚洲国产老妈| 欧美日韩国产综合网| 亚洲欧美精品中文字幕在线| 亚洲一级在线观看| 国产亚洲欧美日韩美女| 久久婷婷麻豆| 欧美国产一区视频在线观看| 一区二区三区精品久久久| 亚洲无线观看| 国产一区美女| 欧美.www| 欧美日韩亚洲综合| 久久精品成人欧美大片古装| 久久久亚洲欧洲日产国码αv| 亚洲肉体裸体xxxx137| 艳妇臀荡乳欲伦亚洲一区| 国产精品中文字幕在线观看| 另类天堂视频在线观看| 欧美激情二区三区| 欧美影院一区| 欧美jizz19性欧美| 欧美一区二区国产| 乱码第一页成人| 香蕉久久夜色精品| 久久综合久色欧美综合狠狠| 亚洲视频一区二区免费在线观看| 午夜视频一区二区| 亚洲三级免费观看| 午夜精品国产精品大乳美女| 91久久精品一区二区别| 亚洲自拍电影| 亚洲精品一区二区三区婷婷月| 亚洲午夜精品久久久久久浪潮| 影音先锋中文字幕一区| 亚洲精品国久久99热| 亚洲综合日韩在线| 先锋影音网一区二区| 亚洲日本欧美在线| 小黄鸭精品密入口导航| 99国产精品99久久久久久粉嫩| 午夜天堂精品久久久久| 亚洲视频你懂的| 久热精品在线视频| 久久久国产精彩视频美女艺术照福利| 欧美激情a∨在线视频播放| 久久久久网址| 国产精品视频导航| 亚洲另类春色国产| 亚洲精品免费在线播放| 久久亚洲一区| 久久久久久久网站| 国产精品自拍网站| 亚洲午夜精品视频| 亚洲色在线视频| 欧美看片网站| 91久久国产综合久久蜜月精品| 一区二区视频免费在线观看| 欧美一区二区三区婷婷月色 | 免费成人黄色| 久久综合伊人| 狠狠久久综合婷婷不卡| 欧美一区二区三区视频| 午夜亚洲一区| 国产九区一区在线| 午夜久久黄色| 欧美在线精品一区| 99视频有精品| 一区二区高清在线观看| 欧美精品激情在线| 日韩亚洲一区二区| 亚洲视频一区二区| 国产精品美女久久久久久久| 亚洲一区二区三区色| 午夜视频在线观看一区| 国产精品永久免费视频| 亚洲免费视频网站| 久久成人亚洲| 亚洲国产精品123| 欧美搞黄网站| 99视频在线观看一区三区| 午夜精品免费视频| 国产日韩欧美精品综合| 久久久国产成人精品| 欧美凹凸一区二区三区视频| 亚洲精品视频在线| 国产精品爱啪在线线免费观看 | 欧美大片一区二区| 亚洲日本免费| 午夜亚洲影视| 亚洲国产精品久久久久| 欧美日本在线视频| 亚洲午夜精品一区二区| 久久中文字幕一区二区三区| 亚洲三级毛片| 国产日韩欧美在线| 欧美mv日韩mv亚洲| 亚洲字幕一区二区| 欧美色精品在线视频| 亚洲国产精品美女| av成人天堂| 国产亚洲欧美一区| 欧美极品一区| 性欧美videos另类喷潮| 91久久精品国产91性色tv| 亚洲欧美色一区| 亚洲丰满在线| 国产精品永久免费视频| 免费观看在线综合| 欧美一区午夜精品| 亚洲精品资源| 国产精品色婷婷久久58| 久久超碰97人人做人人爱| 亚洲免费不卡| 免费h精品视频在线播放| 亚洲在线免费| 亚洲精品色婷婷福利天堂| 国产亚洲女人久久久久毛片| 欧美日韩亚洲网| 美女日韩欧美| 久久av资源网站| 亚洲综合国产精品| 亚洲国产精品一区二区第一页| 久久精品日韩| 性欧美大战久久久久久久免费观看 | 一区二区国产日产| 精品动漫3d一区二区三区免费版 | 亚洲黄色大片| 久久资源av| 久久综合图片|