POJ1125 股票经济人通信网络(多源最短路径)
2012-12-10 10:17
459 查看
有N个股票经济人可以互相传递消息,他们之间存在一些单向的通信路径。现在有一个消息要由某个人开始传递给其他所有人,问应该由哪一个人来传递,才能在最短时间内让所有人都接收到消息。若不存在这样一个人,则输出disjoint。
简单的多源最短路径问题,用floyd算法求出所有存在的路径,然后对每个人判断是否可以由他来传递以及传递的时间,取最小的那个即可。
简单的多源最短路径问题,用floyd算法求出所有存在的路径,然后对每个人判断是否可以由他来传递以及传递的时间,取最小的那个即可。
#include <iostream> #include <cstdio> #include <algorithm> #include <queue> using namespace std; const int N = 105; const int MAX = 0xfffffff; int n; int edge ; void floyd() { for (int k = 0; k < n; ++k) { for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (edge[i][j] > edge[i][k] + edge[k][j]) { edge[i][j] = edge[i][k] + edge[k][j]; } } } } } int main() { int m, mate, dis; while (scanf("%d", &n) != EOF && n) { for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (i != j) edge[i][j] = MAX; else edge[i][j] = 0; } } for (int i = 0; i < n; ++i) { scanf("%d", &m); for (int j = 0; j < m; ++j) { scanf("%d%d", &mate, &dis); --mate; edge[i][mate] = dis; } } floyd(); int ans, tmin, pnt; bool disjoint; ans = MAX; for (int i = 0; i < n; ++i) { tmin = -1; disjoint = false; for (int j = 0; j < n && !disjoint; ++j) { if (i != j && edge[i][j] == MAX) disjoint = true; if (i != j && edge[i][j] > tmin) tmin = edge[i][j]; } if (!disjoint && tmin < ans) { disjoint = false; ans = tmin; pnt = i; } } if (ans == MAX) printf("disjoint\n"); else printf("%d %d\n", pnt + 1, ans); } return 0; }
相关文章推荐
- 股票经济人通信网络 poj 1125 多源最短路
- POJ1125 Stockbroker Grapevine (Floyd求多源最短路径)
- 17th 【最短路 floyd】股票经济人通信网络
- Spark GraphX之Dijkstra(单源最短路径)、Prime(最小生成树)、FloydWarshall(多源最短路径)
- hdu 6166 Senior Pan(多源最短路径)(二进制划分集合)
- ArcGIS 网络分析[2.1] 最短路径
- 【图】多源最短路径floyd
- 以Network Dataset(网络数据集)方式实现的最短路径分析
- 数据结构 学习笔记(八):图(中):最短路径问题(单源最短路径 Dijkstra,多源最短路径 Floyd)
- 加权有向图----多源最短路径问题(Floyd算法)
- 医院设置(多源最短路径--Floyd算法)
- 【2017新疆网络赛】H Skiing 最短路径spfa 模版
- HDU 1690 多源最短路径 Bus System
- ArcGIS 网络分析[2] 在ArcMap中使用网络数据集进行五大网络分析[最短路径/服务区/最近设施点/OD成本矩阵/车辆分配]
- 多源最短路径之Floyd算法
- 多源最短路径算法---Floyd-Warshall
- hdu 6166 Senior Pan(多源最短路径)(二进制划分集合)
- POJ 1125:Stockbroker Grapevine:多源最短路径forld
- poj --1125----Stockbroker Grapevine(多源最短路径)
- Floyd 算法求多源最短路径-打印最短路径