博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
并查集 HDOJ 1232 畅通工程
阅读量:5875 次
发布时间:2019-06-19

本文共 1391 字,大约阅读时间需要 4 分钟。

 

1 /* 2     并查集(Union-Find)裸题 3     并查集三个函数:初始化Init,寻找根节点Find,连通Union 4     考察:连通边数问题 5 */ 6 #include 
7 #include
8 #include
9 #include
10 using namespace std;11 12 const int MAX_N = 1000 + 10;13 int pre[MAX_N];14 int tot;15 16 int find(int root)17 {18 int son, tmp;19 son = root;20 21 while (root != pre[root])22 {23 root = pre[root];24 }25 while (son != root) //路径压缩 非递归版26 {27 tmp = pre[son];28 pre[son] = root;29 son = tmp;30 }31 32 return root;33 }34 35 void joint(int root1, int root2)36 {37 int x, y;38 39 x = find (root1);40 y = find (root2);41 42 if (x != y)43 {44 pre[x] = y;45 tot--; //连通一条少一条边46 }47 }48 49 int main(void) //HDOJ 1232 畅通工程50 {51 //freopen ("inA.txt", "r", stdin);52 int n, m;53 int x, y;54 55 while (~scanf ("%d%d", &n, &m) && n)56 {57 for (int i=1; i<=n; ++i)58 {59 pre[i] = i;60 }61 tot = n - 1; //tot 记录边 (n个顶点有n-1条边)62 while (m--)63 {64 scanf ("%d%d", &x, &y);65 joint (x, y);66 }67 printf ("%d\n", tot); //还有几条边(路)没有连通68 }69 70 return 0;71 }

 

转载于:https://www.cnblogs.com/Running-Time/p/4512934.html

你可能感兴趣的文章
蓝缘管理系统第三版推出。springMVC4.0+shiro1.2.3+spring4.x+Mybaits3.2.8
查看>>
利用Multipeer Connectivity框架进行WiFi传输
查看>>
第一章 重构
查看>>
cordova填坑
查看>>
ECMAScript 6 入门
查看>>
14Spring_AOP编程(AspectJ)_环绕通知
查看>>
PHP之打开文件
查看>>
iOS - OC SQLite 数据库存储
查看>>
PHP-mysqllib和mysqlnd
查看>>
Redis常用命令
查看>>
NeHe OpenGL教程 第三十五课:播放AVI
查看>>
Linux下ping命令、traceroute命令、tracert命令的使用
查看>>
js replace,正则截取字符串内容
查看>>
socket
查看>>
Highcharts使用表格数据绘制图表
查看>>
Thinkphp5笔记三:创建基类
查看>>
LNMP之编译安装PHP出现的问题
查看>>
hdu5373
查看>>
4.单链表的创建和建立
查看>>
testng生成报告 testng-xslt 美化测试报告
查看>>