• [1688] 细胞分裂

  • 时间限制: 1000 ms 内存限制: 65535 K
  • 问题描述
  • 细胞分裂(cell division)是指活细胞增殖其数量由一个细胞分裂为两个细胞的过程。分裂前的细胞称母细胞,分裂后形成的新细胞称子细胞。通常包括细胞核分裂和细胞质分裂两步。在核分裂过程中母细胞把遗传物质传给子细胞。那么现在你面前有一个显微镜,上面可以清楚地看到当前细胞群的分裂或者融合,你需要统计某些时刻此时有几个细胞群,或者某一个细胞群中有多少个小细胞,以便生物学家研究。
  • 输入
  • 第一行为一个正整数T,代表测试数据组数
    第二行为两个正整数n,m(n,m<=500),代表一开始有n个细胞,有m个观察记录。
    接下来m行操作或者询问:
    1、Union a b 代表a细胞与b细胞融合(保证a!=b);
    2、Divide a 代表a细胞从细胞群中分离了出来(如果所在细胞群就是它自己那么分离之后还是它自己)
    3、Size a 代表查询a细胞所在细胞群的细胞总数(包括a本身)
    4、Count 代表询问当前总共有几个细胞群
  • 输出
  • 对询问操作输出答案
  • 样例输入
  • 1
    5 7
    Union 1 2
    Union 2 3
    Size 2
    Count
    Divide 1
    Count
    Size 1
  • 样例输出
  • 3
    3
    4
    1
  • 提示
  • 第一次合并操作:{1,2}{3}{4}{5}
    第二次合并操作:{1,2,3}{4}{5}
    第一次分离操作:{1}{2,3}{4}{5}
  • 来源
  • 本站或者转载
  • 操作

显示春菜