Description

很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武 器统治者整个星系。某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球。这些星球通过特殊的以太隧道互相直接或 间接地连接。 但好景不长,很快帝国又重新造出了他的超级武器。凭借这超级武器的力量,帝国开始有计划地摧毁反抗军占领的星球。由于星球的不断被摧毁,两个星球之间的通 讯通道也开始不可靠起来。现在,反抗军首领交给你一个任务:给出原来两个星球之间的以太隧道连通情况以及帝国打击的星球顺序,以尽量快的速度求出每一次打 击之后反抗军占据的星球的连通快的个数。(如果两个星球可以通过现存的以太通道直接或间接地连通,则这两个星球在同一个连通块中)。

Input

输 入文件第一行包含两个整数,N (1 <= N <= 2M) 和M (1 <= M <= 200,000),分别表示星球的数目和以太隧道的数目。星球用0~N-1的整数编号。接下来的M行,每行包括两个整数X, Y,其中(0<=X<>Y

Output

输出文件的第一行是开始时星球的连通块个数。接下来的N行,每行一个整数,表示经过该次打击后现存星球的连通块个数。

Sample Input

8 13
0 1
1 6
6 5
5 0
0 6
1 2
2 3
3 4
4 5
7 1
7 2
7 6
3 6
5
1
6
3
5
7

Sample Output

1
1
1
2
3
3

分析

维护连通块个数这种事,如果只有加边没有删边的话,就是只要一个并查集就可以解决的大水题了= =而本题只有删边没有加边,只要把它倒过来做就好…

   #include <cctype>
 #include <cstdio>
 #include <list>
 #include <algorithm>
 #include <cmath>
 #include <queue>
  template<typename T>inline           ;
          , c = getchar();
     x = c -       + c -       }
   ;
  list<     inline      getd(N), getd(M);
          adj =      pre =      ;i < N;++i)
         pre[i] = i;
              getd(i),getd(j);
         adj[i].pb(j);
         adj[j].pb(i);
     }
     getd(K);
     ord =      ;i < K;++i)
         getd(ord[i]), des[ord[i]] = ;
     cnt = N - K;
     ;i < N;++i)         list<                                       link(a, b);
                 --cnt;
             }
     }
 }
 inline      list<          ans[K] = cnt;
     ;i >= ;--i){
         ++cnt;
         des[t = ord[i]] = ;
                                       link(a, b);
                 --cnt;
             }
         ans[i] = cnt;
     }
     ;i <= K;++i)
         printf( }
           freopen(          #ifndef ONLINE_JUDGE
     freopen(     freopen(               init();
     solve();
      
          cout << endl << (          ;
 }

离线+并查集

最新文章

  1. hdu 4741 2013杭州赛区网络赛 dfs ***
  2. Centos 关闭后台进程 .sh 等
  3. sC#进阶系列——WebApi 接口参数不再困惑:传参详解
  4. java Joda-Time 对日期、时间操作
  5. Python基础:函数式编程
  6. 在ASP.Net和IIS中删除不必要的HTTP响应头
  7. Struts2的标签库(三)——控制标签
  8. sql server 中 bigint 和 datetime 性能比较
  9. MySQL 子查询 EXISTS 和 NOT EXISTS
  10. python字符串连接的三种方法及其效率、适用场景详解
  11. ObjectStreamDemo
  12. LinkedHashMap遍历
  13. ruby安装sass报错解决办法
  14. xshell 与 putty
  15. 2017-10-22&mdash;LD激光二极管原理
  16. OpenVPN部署,实现访问云服务器的内网
  17. table 的部分使用,固定行,固定列等
  18. php手动搭建wamp环境(一)--之 Apache HTTP Servcer-Apache
  19. 我发起了一个 .Net 平台上的 产生式编程 开源项目 GP.Net
  20. 无法加载ISAPI 筛选器 当前配置只支持加载为 AMD64 处理器体系结构创建的映像

热门文章

  1. 天梯赛 L2-001 紧急救援 (最短路 dij)
  2. C# 获取mp3文件的歌曲时间长度
  3. Python中的raw_input()和input()
  4. Java开发必用的工具包
  5. 进度条算法 progressBar
  6. [ python ] 全局和局部作用域变量的引用
  7. MINI_httpd移植,构建小型WEB服务器
  8. HDU 2894 DeBruijin (数位欧拉)
  9. 洛谷 P1202 [USACO1.1]黑色星期五Friday the Thirteenth 题解
  10. java.lang.reflect.UndeclaredThrowableExceptionjiang