给你n个点m条边,保证已经是个连通图,问每次按顺序去掉给定的一条边,当前的连通块数量。

与其正过来思考当前这边会不会是桥,不如倒过来在n个点即n个连通块下建图,检查其连通性,就能知道个数了

/** @Date    : 2017-09-21 23:26:20
* @FileName: HDU 4496 并查集 逆向思维.cpp
* @Platform: Windows
* @Author : Lweleth (SoungEarlf@gmail.com)
* @Link : https://github.com/
* @Version : $Id$
*/
#include <bits/stdc++.h>
#define LL long long
#define PII pair<int ,int>
#define MP(x, y) make_pair((x),(y))
#define fi first
#define se second
#define PB(x) push_back((x))
#define MMG(x) memset((x), -1,sizeof(x))
#define MMF(x) memset((x),0,sizeof(x))
#define MMI(x) memset((x), INF, sizeof(x))
using namespace std; const int INF = 0x3f3f3f3f;
const int N = 1e5+20;
const double eps = 1e-8; int n, m;
PII p[N];
int ans[N];// int fa[10010]; int find(int x)
{
if(x != fa[x])
fa[x] = find(fa[x]);
return fa[x];
} int join(int a, int b)
{
int x = find(a);
int y = find(b);
if(x != y)
{
fa[y] = x;
return 1;
}
return 0;
}
int main()
{
while(~scanf("%d%d", &n, &m))
{
for(int i = 0; i <= n; i++)
fa[i] = i;
MMF(ans);
for(int i = 1; i <= m; i++)
{
int u, v;
scanf("%d%d", &u, &v);
p[i] = MP(u, v);
}
int cnt = n;
for(int i = m; i >= 1; i--)
{
ans[i] = cnt;
if(join(p[i].fi, p[i].se))
cnt--;
}
for(int i = 1; i <= m; i++)
printf("%d\n", ans[i]);
}
return 0;
}

最新文章

  1. 【USACO 3.3】Riding The Fences(欧拉路径)
  2. stanford NLP学习笔记3:最小编辑距离(Minimum Edit Distance)
  3. C++学习笔记24:makefile文件
  4. RadioButton 的background属性表现特征
  5. ubuntu sh脚本双击运行
  6. 数据缓存iOS
  7. Codeforces Gym 100418K Cards 暴力打表
  8. JSON字符串转换成JSON对象
  9. Android用户界面 UI组件--TextView及其子类(二) Button,selector选择器,sharp属性
  10. WebApi学习总结系列第四篇(路由系统)
  11. OC与Swift混编
  12. Android Afinal框架学习(二) FinalActivity 一个IOC框架
  13. Tiny4412模式跳转
  14. Unsupported major.minor version 52.0解决办法
  15. eclipse导出maven工程的可执行jar包
  16. go日常问题记录
  17. BZOJ3211 花神游历各国 并查集 树状数组
  18. Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project ppcloud-common: Compilation failure
  19. 中式台球 规则 ( ChinaBilliards )
  20. html实体转换

热门文章

  1. RIGHT-BICEP测试第二次程序
  2. CS小分队第二阶段冲刺站立会议(5月30日)
  3. C语言调查问卷
  4. C语言问卷调查表
  5. Spring1()
  6. 201621123037 《Java程序设计》第11周学习总结
  7. Maven 项目依赖 pom 文件模板
  8. default.properties文件
  9. Java知识点整理(二)
  10. Linux服务器开启tomcat的gc日志