POJ 1287 Networking (最小生成树)
Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u
System Crawler (2015-06-02)
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
- #include <iostream>
- #include <cstdio>
- #include <string>
- #include <queue>
- #include <vector>
- #include <map>
- #include <algorithm>
- #include <cstring>
- #include <cctype>
- #include <cstdlib>
- #include <cmath>
- #include <ctime>
- using namespace std;
- const int SIZE = ;
- int N,M;
- int FATHER[SIZE];
- int MAP[SIZE][SIZE];
- struct Node
- {
- int from,to,cost;
- }G[SIZE];
- void ini(void);
- int find_father(int);
- void unite(int,int);
- bool same(int,int);
- bool comp(const Node &,const Node &);
- int kruskal(void);
- int main(void)
- {
- int from,to,cost;
- while(~scanf("%d",&N))
- {
- if(!N)
- break;
- scanf("%d",&M);
- ini();
- for(int i = ;i < M;i ++)
- scanf("%d%d%d",&G[i].from,&G[i].to,&G[i].cost);
- sort(G,G + M,comp);
- printf("%d\n",kruskal());
- }
- return ;
- }
- void ini(void)
- {
- fill(&MAP[][],&MAP[SIZE - ][SIZE - ],-);
- for(int i = ;i <= N;i ++)
- FATHER[i] = i;
- }
- int find_father(int n)
- {
- if(n == FATHER[n])
- return n;
- return FATHER[n] = find_father(FATHER[n]);
- }
- void unite(int x,int y)
- {
- x = find_father(x);
- y = find_father(y);
- if(x == y)
- return ;
- FATHER[x] = y;
- }
- bool same(int x,int y)
- {
- return find_father(x) == find_father(y);
- }
- int kruskal(void)
- {
- int ans = ,count = ;
- for(int i = ;i < M;i ++)
- if(!same(G[i].from,G[i].to))
- {
- unite(G[i].from,G[i].to);
- ans += G[i].cost;
- count ++;
- if(count == N - )
- break;
- }
- return ans;
- }
- bool comp(const Node & a,const Node & b)
- {
- return a.cost < b.cost;
- }
POJ 1287 Networking (最小生成树)的更多相关文章
- POJ 1287 Networking (最小生成树模板题)
Description You are assigned to design network connections between certain points in a wide area. Yo ...
- 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 ...
- POJ 1287 Networking (最小生成树)
Networking 题目链接: http://acm.hust.edu.cn/vjudge/contest/124434#problem/B Description You are assigned ...
- POJ 1287 Networking(最小生成树)
题意 给你n个点 m条边 求最小生成树的权 这是最裸的最小生成树了 #include<cstdio> #include<cstring> #include<algor ...
- poj 1287 Networking【最小生成树prime】
Networking Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 7321 Accepted: 3977 Descri ...
- [kuangbin带你飞]专题六 最小生成树 POJ 1287 Networking
最小生成树模板题 跑一次kruskal就可以了 /* *********************************************** Author :Sun Yuefeng Creat ...
- POJ - 1287 Networking 【最小生成树Kruskal】
Networking Description You are assigned to design network connections between certain points in a wi ...
- POJ 1287 Networking(最小生成树裸题有重边)
Description You are assigned to design network connections between certain points in a wide area. Yo ...
随机推荐
- Unity3d:使用uWebKit插件嵌入网页,网页中的flv视频无法播放
问题描述:unity3d程序,使用uWebKit插件嵌入网页,用来播放FLV视频,有的电脑可以正常播放,有的电脑在网页中播放不了ps:网页中的播放器用的是player.swf解决方案:是由于网页中的播 ...
- maven 基础整理
教程 依赖管理 IDE设置121 IntelliJ,Edit Configurations中添加maven,选中 Resolve Workspace artifacts能自动编译依赖模块 内置命令 m ...
- 第三章TP-Link 703N OpenWrt设置网络
默认情况下不开启wifi,另外需要连接到网络来安装软件,所以需要修正配置文件. 可以用vi修改相关配置(不会用vim的同学悲剧了). 首先修改/etc/config/wireless文件,注释掉 # ...
- js 如何验证字符串里是否包含汉字?
1.用正则表达式判断<input type="text" id="name" placeholder="请输入用户名" value= ...
- Chrome的JS调试工具
你是怎么调试 JavaScript 程序的?最原始的方法是用 alert() 在页面上打印内容,稍微改进一点的方法是用 console.log() 在 JavaScript 控制台上输出内容.嗯~,用 ...
- 【转】Android 属性动画(Property Animation) 完全解析 (上)
http://blog.csdn.net/lmj623565791/article/details/38067475 1.概述 Android提供了几种动画类型:View Animation .Dra ...
- ASP.NET加载主题和皮肤样式的各种方式
一.加载主题(皮肤.样式表)的多种方式 除了在页面指令中采用Theme或者StylesheetTheme为单个页面加载主题外,还可以通过配置文件为多个页面批量加载主题,另外,还可以通过改变页面的The ...
- pjsip视频通信开发(上层应用)之EditText重写
我们经常使用手机的打电话功能,当我们按键盘的时候,有一个地方显示我们按键的内容,当我们的手点击那个地方的时候,并没有弹出软件盘,所以我们再有数字键盘的时候,要屏蔽系统的软件盘. 我们分析一下,软件盘弹 ...
- 今天弱爆了,svn创建项目
今天弱爆了 1.再svnRoot下新建你要建的项目名如:hqdj 文件夹,然后选中它点击右键选中create repository here... ,选择文件系统类型 2.进入conf文件夹进行配置 ...
- 谷歌技术"三宝"之MapReduce
江湖传说永流传:谷歌技术有"三宝",GFS.MapReduce和大表(BigTable)! 谷歌在03到06年间连续发表了三篇非常有影响力的文章,各自是03年SOSP的GFS,04 ...