POJ 1861 Network
题意:有n个点,部分点之间可以连接无向边,每条可以连接的边都有一个权值。求一种连接方法将这些点连接成一个连通图,且所有连接了的边中权值最大的边权值最小。
解法:水题,直接用Kruskal算法做一遍就行了,不过还是应该仔细想想为什么Kruskal可行。原因是,在从小边往大边遍历的过程中(一直保持图为连通图),若判定某边i必须被连接,则因为图是连通图,所以连接比它小的边不可能使边i不需要连接,所以,要使边i不需要连接,必须连接比它大的边,根据题目要求,还是连接边i情况更优。
tag:最小生成树
1 /* 2 * Author: Plumrain 3 * Created Time: 2013-11-24 20:57 4 * File Name: G-POJ-1861.cpp 5 */ 6 #include <iostream> 7 #include <cstdio> 8 #include <cstring> 9 #include <algorithm> 10 #include <vector> 11 12 using namespace std; 13 14 #define CLR(x) memset(x, 0, sizeof(x)) 15 #define PB push_back 16 const int maxm = 15005 * 2; 17 const int maxn = 1005; 18 19 struct pat{ 20 int s, t, l; 21 }; 22 23 pat p[maxm]; 24 bool v[maxm]; 25 vector<int> ans; 26 int n, m, all, f[maxn]; 27 28 bool cmp(pat a, pat b) 29 { 30 return a.l < b.l; 31 } 32 33 void init() 34 { 35 int t1, t2, t3; 36 all = 0; 37 for (int i = 0; i < m; ++ i){ 38 scanf ("%d%d%d", &t1, &t2, &t3); 39 -- t1; -- t2; 40 p[all].s = p[all+1].t = t1; 41 p[all].t = p[all+1].s = t2; 42 p[all++].l = t3; 43 p[all++].l = t3; 44 } 45 } 46 47 void Kruskal() 48 { 49 sort(p, p+all, cmp); 50 for (int i = 0; i < n; ++ i) f[i] = i; 51 CLR (v); 52 for (int i = 0; i < all; ++ i){ 53 int t1 = p[i].s, t2 = p[i].t; 54 while (t1 != f[t1]) t1 = f[t1]; 55 while (t2 != f[t2]) t2 = f[t2]; 56 if (t1 != t2){ 57 v[i] = 1; 58 f[t1] = t2; 59 } 60 } 61 } 62 63 int main() 64 { 65 while (scanf ("%d%d", &n, &m) != EOF){ 66 init(); 67 Kruskal(); 68 69 ans.clear(); 70 int cnt = 0; 71 for (int i = 0; i < all; ++ i) if (v[i]){ 72 cnt = max(i, cnt); 73 ans.PB(i); 74 } 75 int sz = ans.size(); 76 printf ("%d\n%d\n", p[cnt].l, sz); 77 for (int i = 0; i < sz; ++ i) 78 printf ("%d %d\n", p[ans[i]].s+1, p[ans[i]].t+1); 79 } 80 return 0; 81 }
View Code
转载于:https://www.cnblogs.com/plumrain/p/POJ_1861.html
POJ 1861 Network相关推荐
- POJ 1861 Network(KUS算法)
简单的最短路,不过,这题的OUTPUT是错的,要注意. #include<stdio.h> #include<string.h> #include<algorithm&g ...
- 【割边缩点】解题报告:POJ - 3694 - Network(Tarjan割边缩点 + LCA + 并查集优化)
POJ - 3694 - Network 给定一张N个点M条边的无向连通图,然后执行Q次操作,每次向图中添加一条边,并且询问当前无向图中"桥"的数量.N≤105,M≤2∗105,Q ...
- POJ 1236 Network of Schools(强连通 Tarjan+缩点)
POJ 1236 Network of Schools(强连通 Tarjan+缩点) ACM 题目地址:POJ 1236 题意: 给定一张有向图,问最少选择几个点能遍历全图,以及最少加入�几条边使得 ...
- [tarjan] poj 1236 Network of Schools
主题链接: http://poj.org/problem?id=1236 Network of Schools Time Limit: 1000MS Memory Limit: 10000K To ...
- POJ 1236 Network of Schools(tarjan)
Network of Schools Description A number of schools are connected to a computer network. Agreements h ...
- POJ - 1236 Network of Schools
A number of schools are connected to a computer network. Agreements have been developed among those ...
- POJ 1144 Network(无向图连通分量求割点)
题目地址:POJ 1144 求割点.推断一个点是否是割点有两种推断情况: 假设u为割点,当且仅当满足以下的1条 1.假设u为树根,那么u必须有多于1棵子树 2.假设u不为树根.那么(u,v)为树枝边. ...
- POJ - 3417 Network(树上差分)
题目链接:点击查看 题目大意:(摘自大蓝书)Dark是人类内心的黑暗的产物,古今中外的勇者们都试图打倒它.经过研究,你发现Dark呈现无向图的结构,图中有N个节点和两类边,一类边被称为主要边,而另一类 ...
- POJ 1236 Network of Schools(强连通分量缩点求根节点和叶子节点的个数)
Description: A number of schools are connected to a computer network. Agreements have been developed ...
最新文章
- grep 的特殊使用
- Redux 学习笔记
- RxJava from 处理list时,其中有一个出错时如何继续发送下面的list内容。
- [转]Chrome 控制台console的用法
- Android --- RecycleView 中默认选择第一个 item,点击第 2 个 item 时改变其字体样式,其余的 item 的字体样式恢复默认
- tomcat8源码分析-Connector初始化
- golang实现dns域名解析(一)
- 写给大数据开发初学者的话
- Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '=
- 大型网站架构 - 1.架构的演变过程
- Activity加载View调用顺序
- ENode 2.8 最新架构图简介
- pycharm remote 远程项目 同步 本地_利器:PyCharm本地连接服务器搭建深度学习实验环境的三重境界...
- [二叉树遍历|BST]leetcode 538 把二叉搜索树转换为累加树
- SqlServer 在创建数据库时候指定的初始数据库大小是不能被收缩的
- 看拉扎维《模拟CMOS集成电路设计》的一些总结和思考(九)——运算放大器
- 使用阿里字体彩色图标
- 实体-联系图(ER图)
- Python GUI - 利用Tkinter制作个性签名设计软件!
- CTrackThread::PreTranslateMessage(MSG* pMsg)
热门文章
- 按 结构记录的 相关字段 快速排序
- 汽车维修行业呼吁大学生加入修车行列
- 举例介绍活动目录的优势
- 26/100. Min Stack
- Thinkphp 使用过程中,模型中使用其它表却总是没起作用的解决办法
- LeetCode 102. Binary Tree Level Order Traversal
- userscript.user.js 文件头
- 各大门户网站Flash和JS实现的图片幻灯片切换特效代码文件下载:
- 控制項學習三(從繼承開始)
- npm-卸载并安装指定版本Angular CLI以及报错(npm ERR! Error: EACCES: permission denied)