POJ 1287 Networking (最小生成树模板题)
Description
Your task is to design the network for the area, so that there is a connection (direct or indirect) between every two points (i.e., all the points are interconnected, but not necessarily by a direct cable), and that the total length of the used cable is minimal.
Input
The maximal number of points is 50. The maximal length of a given route is 100. The number of possible routes is unlimited. The nodes are identified with integers between 1 and P (inclusive). The routes between two points i and j may be given as i j or as j i.
Output
Sample Input
- 1 0
- 2 3
- 1 2 37
- 2 1 17
- 1 2 68
- 3 7
- 1 2 19
- 2 3 11
- 3 1 7
- 1 3 5
- 2 3 89
- 3 1 91
- 1 2 32
- 5 7
- 1 2 5
- 2 3 7
- 2 4 8
- 4 5 11
- 3 5 10
- 1 5 6
- 4 2 12
- 0
Sample Output
- 0
- 17
- 16
- 26
- 求最小生成树基本思想
- 定义结构体保存两节点及其距离
- 对结构体排序(按两节点距离从小到大)
- 对边的数量进行查询,若两节点父节点不同则连接两父节点,记录边的大小sum及有效边的数量k
- 在循环中判断有效边数量,若等于节点数减一则结束循环
- 判断有效边数量若等于节点数减一,则能连接所有节点输出值,否则不能
- #include<cstdio>
- #include<algorithm>
- using namespace std;
- int n,m,fa[],i,sum,k;
- struct stu
- {
- int from,to,al;
- }st[];
- bool cmp(stu a,stu b)
- {
- return a.al < b.al;
- }
- int find(int a)
- {
- int r=a;
- while(r!=fa[r])
- {
- r=fa[r];
- }
- return r;
- }
- void init()
- {
- for(i = ; i <= n ;i++)
- {
- fa[i]=i;
- }
- }
- int judge(int x,int y)
- {
- int xx=find(x);
- int yy=find(y);
- if(xx != yy)
- {
- fa[xx]=yy;
- return ;
- }
- return ;
- }
- int main()
- {
- while(scanf("%d",&n) && n)
- {
- init();
- scanf("%d",&m);
- for(i = ; i < m ; i++)
- {
- scanf("%d %d %d",&st[i].from,&st[i].to,&st[i].al); //定义结构体保存两节点及其距离
- }
- sort(st,st+m,cmp); //对结构体排序(按两节点距离从小到大)
- int k = ;
- int sum=;
- for(i = ; k < n- ; i++) //对边的数量进行查询
- {
- if(judge(st[i].from,st[i].to)) //若两节点父节点不同则连接两父节点
- {
- k++; //
- sum+=st[i].al;
- } //在循环中判断有效边数量,若等于节点数减一则结束循环(写在循环里看k<n-1 )
- }
- printf("%d\n",sum);
- }
- }
POJ 1287 Networking (最小生成树模板题)的更多相关文章
- POJ 1258 + POJ 1287 【最小生成树裸题/矩阵建图】
Farmer John has been elected mayor of his town! One of his campaign promises was to bring internet c ...
- POJ 1287 Networking (最小生成树)
Networking Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submit S ...
- [kuangbin带你飞]专题六 最小生成树 POJ 1287 Networking
最小生成树模板题 跑一次kruskal就可以了 /* *********************************************** Author :Sun Yuefeng Creat ...
- ZOJ1372 POJ 1287 Networking 网络设计 Kruskal算法
题目链接:problemCode=1372">ZOJ1372 POJ 1287 Networking 网络设计 Networking Time Limit: 2 Seconds ...
- POJ.1287 Networking (Prim)
POJ.1287 Networking (Prim) 题意分析 可能有重边,注意选择最小的边. 编号依旧从1开始. 直接跑prim即可. 代码总览 #include <cstdio> #i ...
- Sliding Window POJ - 2823 单调队列模板题
Sliding Window POJ - 2823 单调队列模板题 题意 给出一个数列 并且给出一个数m 问每个连续的m中的最小\最大值是多少,并输出 思路 使用单调队列来写,拿最小值来举例 要求区间 ...
- POJ 1287 Networking【kruskal模板题】
传送门:http://poj.org/problem?id=1287 题意:给出n个点 m条边 ,求最小生成树的权 思路:最小生树的模板题,直接跑一遍kruskal即可 代码: #include< ...
- poj 1251 poj 1258 hdu 1863 poj 1287 poj 2421 hdu 1233 最小生成树模板题
poj 1251 && hdu 1301 Sample Input 9 //n 结点数A 2 B 12 I 25B 3 C 10 H 40 I 8C 2 D 18 G 55D 1 E ...
- 最小生成树模板题POJ - 1287-prim+kruskal
POJ - 1287超级模板题 大概意思就是点的编号从1到N,会给你m条边,可能两个点之间有多条边这种情况,求最小生成树总长度? 这题就不解释了,总结就算,prim是类似dijkstra,从第一个点出 ...
随机推荐
- iOS Swift3 用全局“宏”时要注意的问题
当你需要定义一个APP全局“宏”来调用 UserDefaults.standard里存储的值的时候, 一定要将这个“宏”定义为计算属性,否则你得到的值只会在APP启动的时候计算一次. 示例如下: va ...
- win32 指令大全
指令类型 助记符 (带*为特权指令) 对标志寄存器的影响 备注 说明 举例 ZF CF PF SF OF AF DF IF TF 数据传送类 数据传送 MOV 不影响标志位 Move MOV r/m3 ...
- PHP函数技巧篇
可变参数 Php提供3个函数用于检索在函数中所传递的参数. $array = func_get_args(); //返回一个提供给函数的所有参数的数组 $count = func_num_args() ...
- [APIO2012]派遣 洛谷P1552 bzoj2809 codevs1763
http://www.codevs.cn/problem/1763/ https://www.lydsy.com/JudgeOnline/problem.php?id=2809 https://www ...
- 转-eclipse管理多个workspace
Eclipse作为Java开发中最常用的开发工具,大家都很熟悉了,但是,当你做过很多项目后你会发现你的eclipse的package explorer视图下显示的project超级多,这时你可能会关闭 ...
- php 缩略图
<!DOCTYPE html><!-- HTML5表单 --><form method="post" action="" enct ...
- 134 Gas Station 加油站
在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i].你有一辆油箱容量无限的的汽车,从第 i 个加油站前往第 i+1 个加油站需要消耗汽油 cost[i].你从其中一个加油站出发,开始 ...
- Hadoop工作流--JobControl(五)
不多说,直接上干货! 这只是部分,做个引子. 未完,待续!
- PHP的知识点总结1
PHP 基础知识总结 2015-06-03 分类: 编程技术 PHP 代表 PHP: Hypertext Preprocessor PHP 文件可包含文本.HTML.JavaScript代码和 P ...
- Asp.net MVC + Vue.js
@{ Layout = null; } <!DOCTYPE html><html> <head> <meta charset="UTF-8" ...