HDU1232 畅通project 并查集
这道题跟HDU 1213 How Many Tables 并查集很接近,都是赤裸裸的并查集的题。
思路:如果还须要建n-1条路。每并一次就自减1。
參考代码:
#include<stdio.h>
int fa[1000];
int find(int u)
{
return fa[u]==u? u:fa[u]=find(fa[u]);
}
int main()
{
int i,n,m,u,v,x,y;
scanf("%d%d",&n,&m);
while (n)
{
for (i=1;i<=n;i++) fa[i]=i;
for (i=1;i<=m;i++)
{
scanf("%d%d",&u,&v);
x=find(u);y=find(v);
if (x!=y)
{
fa[x]=y;
n--;
}
}
n--;
printf("%d\n",n);
scanf("%d%d",&n,&m);
}
return 0;
}
优化:先用数组储存m组数,然后仅仅对这些节点的根节点
赋初值fa[u[i]]=u[i];fa[v[i]]=v[i];
參考代码:
#include<stdio.h>
int fa[1000],u[1000],v[1000];
int find(int u)
{
return fa[u]==u?u:fa[u]=find(fa[u]);
}
int main()
{
int i,n,m,x,y;
scanf("%d%d",&n,&m);
while (n)
{
for (i=1;i<=m;i++)
{
scanf("%d%d",&u[i],&v[i]);
fa[u[i]]=u[i];
fa[v[i]]=v[i];
}
for (i=1;i<=m;i++)
{
x=find(u[i]);y=find(v[i]);
if (x!=y)
{
fa[x]=y;
n--;
}
}
n--;
printf("%d\n",n);
scanf("%d%d",&n,&m);
}
return 0;
}
HDU1232 畅通project 并查集的更多相关文章
- HDU1232 畅通工程 并查集
畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- hdu1232 畅通工程 并查集的 应用
畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- hdu1232畅通工程(并查集,简单题)
传送门 最少好要修多少条路太能使全部城镇连通.只要用并查集算可以连通的城市的组数,修的路就是组数减1 #include<bits/stdc++.h> using namespace std ...
- HDU1232 畅通工程 (并查集模板题)
畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- ACM: 继续畅通工程-并查集-最小生成树-解题报告
继续畅通工程 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Descri ...
- ACM: 畅通工程-并查集-解题报告
畅通工程 Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description 某省调查城镇交通状况 ...
- B - 畅通工程(并查集)
对并查集理解之后就可以做这种题了,虽说这种题做的不多,这道题做过才这么快搞定,可是还是挺happy滴,加油 Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接 ...
- NSOJ 畅通工程(并查集)
某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可). ...
- hdu 1233 还是畅通工程 并查集or最小生成树
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路 ...
随机推荐
- oracle用户锁定
https://www.cnblogs.com/lostyue/archive/2011/12/06/2278063.html
- SQL SERVER-数据库的远程访问解决办法
除了下面的这个RemoteDacEnabled更改为true之后,还要把防火墙关闭,才能通过IP地址访问数据库 来自为知笔记(Wiz)
- mybatis和hibernate的区别【转】
第一章 Hibernate与MyBatisHibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀的 ...
- eclipse 设置代码大小和布局里面代码大小
Eclipse字体大小调整: Window / Preferences / General / Appearance / ColorsAnd Fonts .在右边的对话框里选择Java – Java ...
- RBAC介绍
基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注.在RBAC中,权限与角色相关联,用户通过成为适当角色的成 ...
- 修改echarts环形图的牵引线及文字位置
修改echarts环形图的牵引线及文字位置,下面代码及效果不仅如此,也包含了其它的效果哦.有问题可以留言. 根据echarts官方示例修改效果: 官方示例图: 修改效果图: 直接上代码:其它不多说. ...
- ImageUtils
JavaSE package com.easystructure.utils.system; import java.awt.Color; import java.awt.Font; import j ...
- 【算法】第二类斯特林数Stirling
第二类Stirling数实际上是集合的一个拆分,表示将n个不同的元素拆分成m个集合的方案数,记为 或者 . 第二类Stirling数的推导和第一类Stirling数类似,可以从定义出发考虑第n+1个元 ...
- C#压缩和解压缩字节(GZip)
标题:C#压缩和解压缩字节(GZip的使用) 作用:此类在 .NET Framework 2.0 版中是新增的.提供用于压缩和解压缩流的方法和属性.定义:表示 GZip 数据格式,它使用无损压缩和解压 ...
- Mysql语法:navicat for mysql 添加注释
在 navicat 中有三种注释的书写方式: 以 # 开头的字符串,可以多个 # 连续以 – 开头的字符串,注意:只能是 – ,而且 – 后面需要加一个半角空格以 /* */ 包围的字符串,类似于 J ...