貌似某大犇说过 正难则反,,,
题目说要对这张图进行删边,然后判断联通块的个数,那么就可以先把所有边都删掉,之后从后往前加边,若加的边两端点不在同一个联通块中,
那么此时联通快个数少一,否则不变
 #include <cstdio>
#include <cstring>
#include <algorithm> const int maxn = + ;
const int maxm = + ;
int father[maxn];
int x1[maxm], x2[maxm];
int ans[maxm];
int n, m; int getfather(int x) {
if (father[x] == x) return (x);
return (father[x] = getfather(father[x]));
} int main () {
while(scanf("%d %d", &n, &m) != EOF) {
memset(ans, , sizeof(ans));
for (int i = ; i <= n; i++) father[i] = i;
for (int i = ; i <= m; i++) {
scanf("%d %d", &x1[i], &x2[i]);
x1[i] += ;
x2[i] += ;
}
ans[m] = n;
for (int i = m; i >= ; i--) {
int tx = getfather(x1[i]);
int ty = getfather(x2[i]);
if (tx != ty) {
ans[i-] = ans[i] - ;
father[tx] = ty;
} else {
ans[i-] = ans[i];
}
}
for (int i = ; i <= m; i++) printf("%d\n", ans[i]);
}
return ;
}

最新文章

  1. ExtJs 实现表单联动
  2. bzoj1124[POI2008]枪战maf
  3. Linux 启动项介绍
  4. BW增强数据源的两种方法
  5. HDU 1041 Computer Transformation (简单大数)
  6. [转] 使用C#开发ActiveX控件
  7. .NET 4.6
  8. mongodb综述
  9. [设计模式] Iterator - 迭代器模式:由一份奥利奥早餐联想到的设计模式
  10. 消费五分钟,小白也能了解的经典技术:关于IP负载均衡(LVS之NAT)
  11. CAN总线学习记录之四:位定时与同步
  12. JavaScript获取元素尺寸和大小操作总结(转载)
  13. onmouseover和onmouseout的bug
  14. Java GC的原理
  15. mysql之子查询
  16. 使用kubernetes创建容器一直处于ContainerCreating状态的原因查找与解决
  17. 【OpenCV-Python】-几何变换
  18. 电子相册之bitmap
  19. Qt 学习之路 2(73):Qt 线程相关类
  20. python--关于if __name__==__main__的解释

热门文章

  1. js异步队列之理解
  2. HDU 1757 A Simple Math Problem( 矩阵快速幂 )
  3. BZOJ 3307 雨天的尾巴 (树上差分+线段树合并)
  4. 小学生都能学会的python(文件操作)
  5. 【codeforces 743E】Vladik and cards
  6. Java基础学习总结(47)——JAVA输入输出流再回忆
  7. 【转】C# winform 加载网页 模拟键盘输入自动接入访问网络
  8. 8个超实用的Java测试工具和框架
  9. STL_算法_对全部元素排序(sort、stable_sort)
  10. spark源代码action系列-foreach与foreachPartition