HDU 1232 畅通工程(并查集)
来源:互联网 发布:matlab数据分析 编辑:程序博客网 时间:2024/06/04 19:30
【题目链接】
http://acm.hdu.edu.cn/showproblem.php?pid=1232
题目意思
某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?
解题思路
假定一开始点都是分开的,那么就要修n-1条路,然后每次输入路径时候判断两个城市是否已经相连,如果没有,修的路径减少1.处理方法用并查集处理,每次判断两个点的根节点是否相同,相同则已经相连。
代码部分
#include<bits/stdc++.h>using namespace std;#define ll long longint pre[1005];int unionsearch(int root){ int son; son=root; while (root!=pre[root]) ///查找根节点 { root=pre[root]; } while (son!=root) ///路径压缩 { int tem=pre[son]; pre[son]=root; son=tem; } return root;}int main(){ int n,m; while (scanf("%d",&n)&&n) { scanf("%d",&m); int ans=n-1; ///一开始无路连通,要修n-1条路 int x,y; for (int i=1;i<=n;i++) { pre[i]=i; } for (int i=0;i<m;i++) { scanf("%d %d",&x,&y); x=unionsearch(x); y=unionsearch(y); if (x!=y) ///如果原本x和y不在一个树,那么少修一条路 { pre[x]=y; ans--; } } printf("%d\n",ans); } return 0;}
阅读全文
0 0
- hdu 1232 畅通工程 并查集
- HDU 1232 畅通工程 并查集
- HDU 1232 畅通工程 (并查集)
- hdu 1232畅通工程 并查集
- hdu 1232 畅通工程 并查集
- HDU--1232--畅通工程--并查集
- 畅通工程-并查集-hdu 1232
- hdu 1232 畅通工程并查集
- HDU 1232 畅通工程 并查集
- hdu 1232 畅通工程 并查集
- hdu 1232 畅通工程(并查集)
- HDU 1232 畅通工程(并查集)
- HDU 1232 畅通工程(并查集)
- HDU 1232 畅通工程 并查集
- 并查集:hdu 1232 畅通工程
- HDU - 1232 畅通工程 <并查集>
- hdu 1232 畅通工程(并查集)
- HDU 1232 畅通工程(并查集)
- PHP PDO
- 程序员职业生涯全攻略,附神级跳槽攻略图
- 还原数据库,数据库提示正在还原中的处理办法
- window.location.href和window.top.location.href的区别
- 通过金矿模型介绍动态规划
- HDU 1232 畅通工程(并查集)
- 矩阵乘法
- list编码问题python-2.7
- PHP 5 SimpleXML 函数
- java的System.getProperty()方法可以获取的值,仅供参考
- Android基础_帧动画 补间动画 属性动画(十一)
- 物理地址相关说明
- 十五、基础教程-图表缩放(Zoom)
- java 浮点类型计算