URAL1671 Anansi's Cobweb(离线做 + 并查集)
传送门
大意:给出一个无向图,删除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(离线做 + 并查集)相关推荐
- Ural1671 Anansi's Cobweb 并查集
倒着来 水题 1671. Anansi's Cobweb Time limit: 1.0 second Memory limit: 64 MB Usatiy-Polosatiy XIII decide ...
- Ural 1671 - Anansi's Cobweb 倒过来做...并查集维护..
题意: 给出一个无向图..然后不断的删边..问每次删边后..整个图是由几个联通块组成的.... 题解: 以前做过一个题..是CF上面的...是不断的删边..并询问某两点的最短路..当时的方法是倒过来. ...
- Ural1671 Anansi's Cobweb
题意: n个结点,m条边构成一个连通图, 删除t条边,输出没删除一条边, 图会被分成几块 Solution 反向并查集,同样不难~ 代码 #include<bits/stdc++.h> u ...
- HDU - 5441 Travel 离线处理+并查集
题意 给我们一个图 给出这个图的n个点 和m个边和权值 然后再分别给我们q个查询 每个查询给一个x 让我们在这个图中找出多少个不同的有序对 使得从x到y的最大权值不超过x n≤20000,m≤1000 ...
- [HDOJ2586]How far away?(最近公共祖先, 离线tarjan, 并查集)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 这题以前做过-现在用tarjan搞一发-竟然比以前暴力过的慢---- 由于是离线算法,需要Que ...
- 并查集c++代码_[Leetcode 每日精选](本周主题-并查集) 547. 朋友圈
题目难度: 中等 原题链接 今天继续来做并查集的问题, 这道题仍然比较基础, 而且也是个比较接近现实的问题了. 大家在我的公众号"每日精选算法题"中的聊天框中回复 并查集 就能看到 ...
- hdu 1856 并查集——ac的不一定正确
这次深深体会到ac的代码不一定正确.呵呵.cry_mas前一段才和我说起.我还半信半疑.话说好久以前他就说过类似的话,当时水平太菜了.现在深深体会到ac的代码不一定正确.这要坑死了啊,正式比赛碰到真是 ...
- [Leetcode 每日精选](本周主题-并查集) 面试题 17.07. 婴儿名字
题目难度: 中等 原题链接 今天继续来做并查集的问题, 这道题多了一些变化, 但核心仍然是并查集. 大家在我的公众号"每日精选算法题"中的聊天框中回复 并查集 就能看到该系列当前已 ...
- hdu5222 Exploration【并查集+拓扑排序】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5222 题意:有一个探险家,探险一个地方,这个地方有n个洞穴,有若干条边,有的边是有向边,有的是无向边, ...
最新文章
- 利用java反射机制 读取配置文件 实现动态类载入以及动态类型转换
- 使用CSS如何解决inline-block元素的空白间距
- linux ftp非隔离模式,FTP实验报告非隔离用户的使用教案.doc
- 【es】将 elasticsearch 写入速度优化到极限
- python中的装饰器、装饰器模式_浅析Python装饰器以及装饰器模式
- Kali2.0——ssh使用
- @query传参_前端框架vue中query和params传参
- lua -- table.nums
- 就是要你懂Java中volatile关键字实现原理
- python爬虫-斗鱼弹幕(asyncore仅供学习参考用)
- 戴尔服务器uefi安装win7系统,Dell Latitude 3490 使用 UEFI+GPT 安装 Win7 x64
- stm32f4定时器时钟频率/选择
- HPS SoC和FPGA联合使用例程
- web前端开发薪资,JavaScript的字面量与变量
- 有没有人知道我这个怎么弄?
- 产品经理 : 最全的运营数据指标解读
- windows电脑cmd命令查看网卡的物理地址(mac地址)
- linux计划定时自动删除目录下文件
- 使用IBM InfoSphere Guardium Encryption Expert保护您的敏感数据
- 工作中使用的sql知识点及查询语法
热门文章
- 基音周期检测acf算法及matlab仿真,基音周期检测算法研究及在语音合成中的应用...
- 红米k50电竞版和红米k40游戏增强版哪个好 参数对比
- 分布式:分布式系统设计实践。
- 拉普拉斯方程和泊松方程的MATLAB可视化
- Codeforces 1324 D. Pair of Topics(二分)
- java左手画圆右手画方_左手画圆,右手画方,有两个截然不同的说法,你知道吗?...
- 我的组会内容分享(部分)CDR+CTLE+DFE
- 【Turtle绘图系列】超火皮卡丘大全,可爱到爆炸~
- 8款受欢迎的代码编辑器,你喜欢用哪一款呢?
- 有关魅族手机遇到TextView显示异常