题意:给定一个图,问你每次删除一条边后有几个连通块。

析:水题,就是并查集的运用,倒着推。

代码如下:

  1. #include <cstdio>
  2. #include <string>
  3. #include <cstdlib>
  4. #include <cmath>
  5. #include <iostream>
  6. #include <cstring>
  7. #include <set>
  8. #include <queue>
  9. #include <algorithm>
  10. #include <vector>
  11. #include <map>
  12. #include <cctype>
  13. using namespace std ;
  14. typedef long long LL;
  15. typedef pair<int, int> P;
  16. const int INF = 0x3f3f3f3f;
  17. const double inf = 0x3f3f3f3f3f3f3f;
  18. const double eps = 1e-8;
  19. const int maxn = 1e4 + 5;
  20. const int dr[] = {0, 0, -1, 1};
  21. const int dc[] = {-1, 1, 0, 0};
  22. int n, m;
  23. inline bool is_in(int r, int c){
  24. return r >= 0 && r < n && c >= 0 && c < m;
  25. }
  26. int p[maxn];
  27. int e1[maxn*10], e2[maxn*10];
  28. int Find(int x){ return x == p[x] ? x : p[x] = Find(p[x]); }
  29. int ans[maxn*10];
  30.  
  31. int main(){
  32. while(scanf("%d %d", &n, &m) == 2){
  33. for(int i = 0; i < n; ++i) p[i] = i;
  34.  
  35. for(int i = 0; i < m; ++i)
  36. scanf("%d %d", &e1[i], &e2[i]);
  37.  
  38. int cnt = n;
  39. for(int i = m-1; i >= 0; --i){
  40. ans[i] = cnt;
  41. int x = Find(e1[i]);
  42. int y = Find(e2[i]);
  43. if(x != y){
  44. p[y] = x;
  45. --cnt;
  46. }
  47. }
  48.  
  49. for(int i = 0; i < m; ++i)
  50. printf("%d\n", ans[i]);
  51. }
  52. return 0;
  53. }

HDU 4496 D-City (并查集)的更多相关文章

  1. HDU 4496 D-City (并查集)

    题意:有n个城市,m条路,首先m条路都连上,接着输出m行,第i行代表删除前i行的得到的连通块个数 题解:正难则反,我们反向考虑使用并查集添边.首先每个点都没有相连,接着倒着来边添加边计算,当两个点父节 ...

  2. HDU 4496 D-City —— (并查集的应用)

    给出n个点和m条边,一条一条地删除边,问每次删除以后有多少个联通块. 分析:其实就是并查集的应用,只是前一阵子一直做图论思路一直囿于tarjan了..方法就是,记录每一条边,然后从最后一条边开始不断的 ...

  3. hdu 4496 D-City(并查集)

    Problem Description Luxer is a really bad guy. He destroys everything he met. One day Luxer went to ...

  4. HDU 4496 D-City (并查集,水题)

    D-City Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Subm ...

  5. hdu 4496 其实还是并查集

    Problem Description Luxer is a really bad guy. He destroys everything he met. One day Luxer went to ...

  6. HDU 1811 拓扑排序 并查集

    有n个成绩,给出m个分数间的相对大小关系,问是否合法,矛盾,不完全,其中即矛盾即不完全输出矛盾的. 相对大小的关系可以看成是一个指向的条件,如此一来很容易想到拓扑模型进行拓扑排序,每次检查当前入度为0 ...

  7. hdu 6200 mustedge mustedge(并查集+树状数组 或者 LCT 缩点)

    hdu 6200 mustedge mustedge(并查集+树状数组 或者 LCT 缩点) 题意: 给一张无向连通图,有两种操作 1 u v 加一条边(u,v) 2 u v 计算u到v路径上桥的个数 ...

  8. hdu 3635 Dragon Balls(并查集)

    Dragon Balls Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  9. hdu 2480 贪心+简单并查集

    Steal the Treasure Time Limit: 10000/6000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  10. <hdu - 1232> 畅通工程 并查集问题 (注意中的细节)

    本题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232  结题思路:因为题目是汉语的,那我就不解释题意了,要求的是最少建设的道路,我们可以用并查集来做这 ...

随机推荐

  1. [CTO]创业团队CTO应具备的素质

    原文地址:http://www.cyzone.cn/a/20131001/245862_2.html [导读]CTO要让技术团队明白,公司不是请你来搞纯技术研发的,个别人可以纯技术导向,但整个团队的目 ...

  2. BZOJ 1076 奖励关

    注意几点: 1.为什么要逆推?由此状态可以轻易算出彼状态是否可行,而彼状态却无法轻易还原为此状态. 2.为什么可以逆推?假设时光倒流了....23333 3.注意位运算的准确,大胆写方程. #incl ...

  3. BZOJ 4571 美味

    又一部SCOI血泪史.... 唉. 就是在这棵树上一遍又一遍跑嘛. 以后不要直接求答案啊.要最后再异或起来. 要学习简单的代码风格. #include<iostream> #include ...

  4. 通过javascript把图片转化为字符画

    1.获取上传图片对象数据 Javascript无法直接获取本地上传的图片的数据,html5可以解决这一问题 .html5里面的FileReader interface可以把图片对象的数据读到内存,然后 ...

  5. SAS使用SPD引擎并报Encoding错误

     ERROR: Unable to open data file because its file encoding differs from the SAS session encoding and ...

  6. 統計分析dbms_stats包与analyze 的区别

    Analyze StatementThe ANALYZE statement can be used to gather statistics for a specific table, index ...

  7. 百度地图Api详解之地图标注

    标注概述 标注(Marker)是用来表示一个点位置的可见元素,每个标注自身都包含地理信息.比如你在西单商场位置添加了一个标注,不论地图移动.缩放,标注都会跟随一起移动,保证其始终指向正确的地理位置. ...

  8. java 调用 .net webservice

    1.首先下载Axis2工具包 2.解压之后用cmd命令进入bin目录WSDL2Java.bat -uri http://192.168.20.42:9999/LoginService.asmx?wsd ...

  9. TextView------文字底部或者中间加横线

    promotionLinkText = (TextView) this .findViewById(R.id. text_promotion_link ); 中间加横线 promotionLinkTe ...

  10. 使用java开源工具httpClient及jsoup抓取解析网页数据

    今天做项目的时候遇到这样一个需求,需要在网页上展示今日黄历信息,数据格式如下 公历时间:2016年04月11日 星期一 农历时间:猴年三月初五 天干地支:丙申年 壬辰月 癸亥日 宜:求子 祈福 开光 ...