HDU 4496 D-City —— (并查集的应用)
给出n个点和m条边,一条一条地删除边,问每次删除以后有多少个联通块。
分析:其实就是并查集的应用,只是前一阵子一直做图论思路一直囿于tarjan了。。方法就是,记录每一条边,然后从最后一条边开始不断的加边,如果用并查集来判断联通块有没有减少即可。
代码如下:
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <set>
using namespace std;
typedef pair<int,int> pii; int root[+],ans[+];
pii edges[+];
int findroot(int x) {return x==root[x]?x:root[x]=findroot(root[x]);} int main()
{
int n,m;
while(scanf("%d%d",&n,&m)==)
{
int sum = n;
for(int i=;i<n;i++) root[i]=i;
for(int i=;i<m;i++)
{
int u,v;
scanf("%d%d",&u,&v);
edges[i]=pii(u,v);
} for(int i=m-;i>=;i--)
{
ans[i] = sum;
int u = edges[i].first,v=edges[i].second;
int x = findroot(u),y = findroot(v);
if(x != y)
{
root[x] = y;
sum --;
}
}
for(int i=;i<m;i++)
{
printf("%d\n",ans[i]);
}
}
return ;
}
HDU 4496 D-City —— (并查集的应用)的更多相关文章
- HDU 4496 D-City (并查集)
		
题意:有n个城市,m条路,首先m条路都连上,接着输出m行,第i行代表删除前i行的得到的连通块个数 题解:正难则反,我们反向考虑使用并查集添边.首先每个点都没有相连,接着倒着来边添加边计算,当两个点父节 ...
 - hdu 4496 D-City(并查集)
		
Problem Description Luxer is a really bad guy. He destroys everything he met. One day Luxer went to ...
 - HDU 4496 D-City (并查集,水题)
		
D-City Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Subm ...
 - hdu  4496  其实还是并查集
		
Problem Description Luxer is a really bad guy. He destroys everything he met. One day Luxer went to ...
 - HDU 1811 拓扑排序 并查集
		
有n个成绩,给出m个分数间的相对大小关系,问是否合法,矛盾,不完全,其中即矛盾即不完全输出矛盾的. 相对大小的关系可以看成是一个指向的条件,如此一来很容易想到拓扑模型进行拓扑排序,每次检查当前入度为0 ...
 - hdu 6200 mustedge mustedge(并查集+树状数组 或者 LCT 缩点)
		
hdu 6200 mustedge mustedge(并查集+树状数组 或者 LCT 缩点) 题意: 给一张无向连通图,有两种操作 1 u v 加一条边(u,v) 2 u v 计算u到v路径上桥的个数 ...
 - hdu 3635 Dragon Balls(并查集)
		
Dragon Balls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
 - hdu 2480 贪心+简单并查集
		
Steal the Treasure Time Limit: 10000/6000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
 - <hdu - 1232>  畅通工程 并查集问题 (注意中的细节)
		
本题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 结题思路:因为题目是汉语的,那我就不解释题意了,要求的是最少建设的道路,我们可以用并查集来做这 ...
 
随机推荐
- LocalDate与Date转化
			
// 01. java.util.Date --> java.time.LocalDateTimepublic void UDateToLocalDateTime() { java.util.D ...
 - Jmeter4.0---- 测试数据说明(17)
			
1.说明 jmeter工具对于请求的测试结果,有多种形式展现,但是数据比较难懂,现在针对不同的展现做具体的说明. 2.监听器 (一)图形结果 (1)样本数目:总共发到服务器的请求数 (2)最新样本:服 ...
 - RabbitMq 开始<一>
			
power shell 执行: dotnet new console --name Send mv Send/Program.cs Send/Send.cs dotnet new console -- ...
 - 公共的强制保留两位小数的js方法
			
强制保留两位小数的js方法 //写一个公共的强制保留两位小数的js方法 function toDecimal2 (x) { var f = parseFloat(x) if (isNaN(f)) { ...
 - 【js】null 和 undefined的区别?
			
1.首先看一个判断题:null和undefined 是否相等 console.log(null==undefined)//true console.log(null===undefin ...
 - Django 之form简单应用
			
form组件 参考链接:https://www.cnblogs.com/maple-shaw/articles/9537309.html form组件的作用: 1.自动生成input框 2.可以对数据 ...
 - ASP.NET如何接收清楚缓存的通知
			
1 如果使用cache的add方法或者接受CacheItemPriority值得Insert方法重载接收通知,可以提供CacheItemRemovedCallBack对象,选择在清除对象时接收通知 u ...
 - Python3简易接口自动化测试框架设计与实现(中)
			
目录 7.Excel数据读取 7.1.读取配置文件 7.1.编写Excel操作类 8.用例组装 9.用例运行结果校验 10.运行用例 11 .小结 上一篇:Python3简易接口自动化测试框架设计与实 ...
 - CAFFE(FAQ.2):Ubuntu 配置caffe 框架之数据库读取,错误解决:ImportError: No module named leveldb解决办法
			
Z: 在安装了caffe框架后需要读取大量的数据进行学习训练.比如在MNIST识别训练中,一般直接读图片会比较耗时,我们一般将图片转存为数据库中.目前主流的数据库有以下两种选择: LevelDB Lm ...
 - 求 无向图的割点和桥,Tarjan模板
			
/* 求 无向图的割点和桥 可以找出割点和桥,求删掉每个点后增加的连通块. 需要注意重边的处理,可以先用矩阵存,再转邻接表,或者进行判重 */ const int MAXN = 10010; cons ...