hdu1232畅通工程(并查集,简单题)
2024-10-18 09:57:32
最少好要修多少条路太能使全部城镇连通。只要用并查集算可以连通的城市的组数,修的路就是组数减1
#include<bits/stdc++.h>
using namespace std;
#define C getchar()
template <typename T>
inline void read(T &s){
T t=; char k=C; s=;
for (;k<''||k>'';k=C) if (k=='-') t=-;//判断该数正负
for (;k>=''&&k<='';k=C) s=(s<<)+(s<<)+(k^);//<<1加上<<3就相当于*10,但是位运算的速度较快,^48也相当于-‘0’,同理,较快。
s*=t;
}
int f[]={},n,m;
void init()
{
for(int i=;i<=n;i++)
{
f[i]=i;
}
}
int getf(int v)
{
if(f[v]==v)return v;
else
{
f[v]=getf(f[v]);
return f[v];
}
}
void merge(int v,int u)
{
int t1,t2;
t1=getf(v);
t2=getf(u);
if(t1!=t2)
{
f[t2]=t1; }
return;
}
int main()
{
while(~scanf("%d",&n),n)
{
init();
scanf("%d",&m);
for(int i=;i<m;i++)
{
int x,y;
scanf("%d %d",&x,&y);
merge(x,y);
}
int ans=;
for(int i=;i<=n;i++)
{
if(getf(i)==i)ans++;
}
printf("%d\n",ans-);
}
return ;
}
最新文章
- nginx笔记资料
- C语言 03 项目团队文件合并
- python学习-day12:列表、元祖、字典介绍和内置
- VC++制作DLL详解
- 二维线段树 HDU 1823最简单的入门题
- ORACLE 更新关联多张表
- 如何在windows server 2012 R2 部署WEB项目
- 更新sdk
- 直接粘贴代码到网络上:command-line pastebins
- 扩展方法where方法查询不到数据,不会抛异常,也不是返回的null
- 解决 winform打开网页 和WebBrowser打开链接360误报拦截的问题
- cshtml razor
- 百度地图和高德地图结合在web中的使用(二)
- 快速开发android,离不开这10个优秀的开源项目
- Asp.Net MVC三层架构之autofac使用教程
- Spark Streaming性能调优详解
- [leet code 198]House Robber
- PHP判断ajax请求:HTTP_X_REQUESTED_WITH
- 2018.09.23 孙悟空大战鲤鱼精(单调队列优化dp)
- [好文翻译]WEB前端性能优化的14条规则
热门文章
- python3: 字符串和文本(3)
- ES(ElasticSearch)学习总结
- iptables.md
- python第十八课——常用内置函数
- hdu 4803 Poor Warehouse Keeper(贪心+数学)
- mycat结合双主复制实现读写分离模式
- Python+django+uWSGI+Nginx
- java.sql.SQLException: Incorrect string value: &#39;\xF0\x9F\x98\x8E&#39; for column &#39;nick&#39; at row 1
- 关于ESP8266EX的一些资料
- 最近邻规则分类(k-Nearest Neighbor )机器学习算法python实现