zoukankan      html  css  js  c++  java
  • 感染者

    step1:结构体中包括两个元素,一个是该节点的父节点,一个是以该节点为根节点的树的节点数目。初始化时每个节点视为一棵独立的树,这棵树中的元素只有1个。

    step2:输入每对关联的点时进行并操作,将两棵树的节点之和记录在合并之后的树根上。

    step3:输入结束后,查询编号0节点的根节点,这个根节点上记录的节点数目就是所求的结果。

    http://poj.org/problem?id=1611

     1 #include<stdio.h>
     2 #include<string.h>
     3 typedef struct
     4 {
     5     int pre,num;
     6 }Tree;
     7 Tree tree[30000];
     8 int find(int x)
     9 {
    10     if(tree[x].pre==x)
    11         return x;
    12     return tree[x].pre=find(tree[x].pre);
    13 }
    14 void make(int a,int b)
    15 {
    16     int f1=find(a);
    17     int f2=find(b);
    18     if(f2!=f1)
    19     {
    20         tree[f1].num+=tree[f2].num;
    21         tree[f2].pre=f1;
    22     }
    23 }
    24 int main()
    25 {
    26     int m,n,i,j,k;
    27     while(scanf("%d%d",&n,&m)!=EOF)
    28     {
    29         if(n==0&&m==0)  break;
    30         for(i=0;i<n;i++)
    31         {
    32             tree[i].pre=i;
    33             tree[i].num=1;
    34         }
    35         int a,b;
    36         while(m--)
    37         {
    38             scanf("%d",&k);
    39             scanf("%d",&a);
    40             for(i=1;i<k;i++)
    41             {
    42                 scanf("%d",&b);
    43                 make(a,b);
    44             }
    45         }
    46         int t=find(0);
    47         printf("%d
    ",tree[t].num);
    48     }
    49     return 0;
    50 }

     

  • 相关阅读:
    《增长黑客》阅读内容摘要(前三章)
    ios的安全机制
    R语言  RStudio快捷键总结
    R in action 笔记(第二部分)
    R in action 笔记(第一部分)
    R统计函数-开源
    R语言函数索引-11月
    mysql join的优化实例
    android异步消息处理机制
    android ListView与EditText共存错位
  • 原文地址:https://www.cnblogs.com/lyf123456/p/3571583.html
Copyright © 2011-2022 走看看