传送门
大意:给出一个无向图,删除Q条边,每删除一次就询问一次目前的连通块的数目。
思路:离线搞, 把删边转换为加边,每加一次边,若两个顶点不连通就用并查集把着这两个连通块合并。
代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
#define MAXN 100005
using namespace std;
int n, m, q;
int s[MAXN], t[MAXN];
int ban[MAXN], fa[MAXN], st[MAXN];
bool f[MAXN], g[MAXN];
int rt(int u)
{if(fa[u] != u) return fa[u] = rt(fa[u]);return u;
}
int main()
{while(~scanf("%d%d", &n, &m)){memset(ban, 0, sizeof ban);memset(fa, 0, sizeof fa);memset(st, 0, sizeof st);memset(f, 0, sizeof f);memset(g, 0, sizeof g);for(int i = 1; i <= m; i ++)scanf("%d%d", &s[i], &t[i]);for(int i = 1; i <= n; i ++)fa[i] = i;scanf("%d", &q);for(int i = 1; i <= q; i ++){scanf("%d", ban + i);f[ban[i]] = 1;}int ans = n;for(int i = 1; i <= m; i ++)if(!f[i]){int t1 = rt(s[i]), t2 = rt(t[i]);if(t1 != t2) fa[t1] = t2, ans --;}for(int i = q; i > 0; i --){st[i] = ans;int t1 = rt(s[ban[i]]), t2 = rt(t[ban[i]]);if(t1 != t2) fa[t1] = t2, ans --;}printf("%d", st[1]);for(int i = 2; i <= q; i ++)printf(" %d", st[i]);putchar('\n');}return 0;
}

URAL1671 Anansi's Cobweb(离线做 + 并查集)相关推荐

  1. Ural1671 Anansi's Cobweb 并查集

    倒着来 水题 1671. Anansi's Cobweb Time limit: 1.0 second Memory limit: 64 MB Usatiy-Polosatiy XIII decide ...

  2. Ural 1671 - Anansi's Cobweb 倒过来做...并查集维护..

    题意: 给出一个无向图..然后不断的删边..问每次删边后..整个图是由几个联通块组成的.... 题解: 以前做过一个题..是CF上面的...是不断的删边..并询问某两点的最短路..当时的方法是倒过来. ...

  3. Ural1671 Anansi's Cobweb

    题意: n个结点,m条边构成一个连通图, 删除t条边,输出没删除一条边, 图会被分成几块 Solution 反向并查集,同样不难~ 代码 #include<bits/stdc++.h> u ...

  4. HDU - 5441 Travel 离线处理+并查集

    题意 给我们一个图 给出这个图的n个点 和m个边和权值 然后再分别给我们q个查询 每个查询给一个x 让我们在这个图中找出多少个不同的有序对 使得从x到y的最大权值不超过x n≤20000,m≤1000 ...

  5. [HDOJ2586]How far away?(最近公共祖先, 离线tarjan, 并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 这题以前做过-现在用tarjan搞一发-竟然比以前暴力过的慢---- 由于是离线算法,需要Que ...

  6. 并查集c++代码_[Leetcode 每日精选](本周主题-并查集) 547. 朋友圈

    题目难度: 中等 原题链接 今天继续来做并查集的问题, 这道题仍然比较基础, 而且也是个比较接近现实的问题了. 大家在我的公众号"每日精选算法题"中的聊天框中回复 并查集 就能看到 ...

  7. hdu 1856 并查集——ac的不一定正确

    这次深深体会到ac的代码不一定正确.呵呵.cry_mas前一段才和我说起.我还半信半疑.话说好久以前他就说过类似的话,当时水平太菜了.现在深深体会到ac的代码不一定正确.这要坑死了啊,正式比赛碰到真是 ...

  8. [Leetcode 每日精选](本周主题-并查集) 面试题 17.07. 婴儿名字

    题目难度: 中等 原题链接 今天继续来做并查集的问题, 这道题多了一些变化, 但核心仍然是并查集. 大家在我的公众号"每日精选算法题"中的聊天框中回复 并查集 就能看到该系列当前已 ...

  9. hdu5222 Exploration【并查集+拓扑排序】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5222 题意:有一个探险家,探险一个地方,这个地方有n个洞穴,有若干条边,有的边是有向边,有的是无向边, ...

最新文章

  1. 利用java反射机制 读取配置文件 实现动态类载入以及动态类型转换
  2. 使用CSS如何解决inline-block元素的空白间距
  3. linux ftp非隔离模式,FTP实验报告非隔离用户的使用教案.doc
  4. 【es】将 elasticsearch 写入速度优化到极限
  5. python中的装饰器、装饰器模式_浅析Python装饰器以及装饰器模式
  6. Kali2.0——ssh使用
  7. @query传参_前端框架vue中query和params传参
  8. lua -- table.nums
  9. 就是要你懂Java中volatile关键字实现原理
  10. python爬虫-斗鱼弹幕(asyncore仅供学习参考用)
  11. 戴尔服务器uefi安装win7系统,Dell Latitude 3490 使用 UEFI+GPT 安装 Win7 x64
  12. stm32f4定时器时钟频率/选择
  13. HPS SoC和FPGA联合使用例程
  14. web前端开发薪资,JavaScript的字面量与变量
  15. 有没有人知道我这个怎么弄?
  16. 产品经理 : 最全的运营数据指标解读
  17. windows电脑cmd命令查看网卡的物理地址(mac地址)
  18. linux计划定时自动删除目录下文件
  19. 使用IBM InfoSphere Guardium Encryption Expert保护您的敏感数据
  20. 工作中使用的sql知识点及查询语法

热门文章

  1. 基音周期检测acf算法及matlab仿真,基音周期检测算法研究及在语音合成中的应用...
  2. 红米k50电竞版和红米k40游戏增强版哪个好 参数对比
  3. 分布式:分布式系统设计实践。
  4. 拉普拉斯方程和泊松方程的MATLAB可视化
  5. Codeforces 1324 D. Pair of Topics(二分)
  6. java左手画圆右手画方_左手画圆,右手画方,有两个截然不同的说法,你知道吗?...
  7. 我的组会内容分享(部分)CDR+CTLE+DFE
  8. 【Turtle绘图系列】超火皮卡丘大全,可爱到爆炸~
  9. 8款受欢迎的代码编辑器,你喜欢用哪一款呢?
  10. 有关魅族手机遇到TextView显示异常