POJ 2485 公路
来源:互联网 发布:mac需要鼠标吗 编辑:程序博客网 时间:2024/04/27 17:54
#include<iostream>#include<fstream>using namespace std;/* 648K766MS*/static const int MAXNODES = 501;static const int MAXINT = ((unsigned)-1) >> 1;static int weigh[MAXNODES][MAXNODES];static int key[MAXNODES];static int isin[MAXNODES];static int cost;static int longest;static int n;//#define DEBUGvoid prim(){int i, j;key[1] = 0;isin[1] = 0;longest = 0;for (i = 2; i <= n; i++){key[i] = MAXINT;isin[i] = 0;}for (cost = 0, i = 1; i <= n; i++){int min = MAXINT; int mini = -1;for(j = 1; j <= n; j++){if (!isin[j] && key[j] < min){min = key[j];mini = j;}}isin[mini] = 1;cost += min;if (min > longest)longest = min;for (j = 1; j <= n; j++){if (!isin[j] && weigh[mini][j] < key[j])key[j] = weigh[mini][j];}}}int main(){#ifdef DEBUGfstream cin("G:\\book\\algorithms\\acm\\Debug\\dat.txt");#endifint t;cin >> t;while (t-- > 0){int i, j;cin >> n;for (i = 1; i <= n; i++)for (j = 1; j <= n; j++)cin >> weigh[i][j];prim();cout << longest << "\n";}return 0;}
直接应用prim算法即可。和传统的最小生成树不同的在于所要求解的是最小代价中的最大值。
Prim算法的思想是贪心算法。算法的理论基础参加算法导论的23.2节。
Prim算法操作的对象是节点,邻接矩阵。算法过程和Dijkstra单源最短路径相似。
Prim算法的正确性的理解比Kruskal算法难。
- poj 2485 修建公路
- POJ 2485 公路
- 【Prim】-POJ-2421-构造公路
- POJ 2017 计算公路里程 模拟题
- 移动公路
- 公路修建
- 公路乘车
- oj-公路
- 公路修建
- 公路乘车
- POJ 2128 Highways(我的水题之路——最小两条公路之和)
- 俄罗斯的公路
- 公路护栏网
- 中国公路经营模式
- Tyvj 1015 公路乘车
- 收费公路重建问题
- 环形公路问题
- 环路公路难题
- Discuz 表
- IOS学习之路二十(程序json转换数据的中文字符问题解决)
- 世界海底光缆分布图 文章来源http://www.cnblogs.com/rubylouvre/articles/1824927.html
- 论javascript模块化的优缺
- 问题解决——OpenGL超级宝典 第四章 4.5.2 关于freeglut.lib问题的解决过程
- POJ 2485 公路
- Flex项目中引用Away3D的AS项目注意的问题
- android学习笔记
- Python中常用的库
- nagos服务配置记录(有图有文本,只是做一个概览备忘,不是细致的)
- 我的大一ACM之路
- Jquery+ajax+json+servlet原理和Demo
- LINUX mount -t用法
- 周末小记 2013/8/26—2013/9/1