poj_1125 Floyd算法简单应用
2014-07-25 12:52
309 查看
题目很简单,floyd很容易记忆,理解所谓的“松弛”就行,变量依次为k,i,j。
求图G中任意两点的最短路径;对每一个stockbroker看是否能传播给其他人信息,若都能,找到min_time,最后比较若干个stockbroker的min_time,找到最小的那个。
求图G中任意两点的最短路径;对每一个stockbroker看是否能传播给其他人信息,若都能,找到min_time,最后比较若干个stockbroker的min_time,找到最小的那个。
#include<iostream> #include<fstream> using namespace std; const int MAX = 0xfffffff; int dist[101][101];//max map int n;//number of stockbrokers void floyd() { for (int k = 1; k <= n; k++) { for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if (dist[i][j] > dist[i][k] + dist[k][j]) { dist[i][j] = dist[i][k] + dist[k][j]; } } } } } int main() { //ifstream in("text.txt"); while (cin >> n && n!=0) { //init for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if (i != j) dist[i][j] = MAX; else dist[i][j] = 0; } } //input for (int i = 1; i <= n; i++) { int pair; cin >> pair; for (int j = 1; j <= pair; j++) { int client, time; cin >> client >> time; dist[i][client] = time; } } floyd(); //handle start client & min time int ans=MAX,tmin; bool disjoint; int start; for (int i = 1; i <= n; i++) { tmin = -1; disjoint = false; for (int j = 1; j <= n && !disjoint; j++) { if (i!=j && dist[i][j]==MAX) { disjoint = true; } if (i != j && dist[i][j] > tmin) { tmin = dist[i][j]; } } if (!disjoint && tmin<ans) { disjoint = false; ans = tmin; start = i; } } //output if (ans == MAX) cout << "disjoint" << endl; else cout << start << " " << ans<<endl; } //system("pause"); return 0; }
相关文章推荐
- POJ 1125 Stockbroker Grapevine【floyd简单应用】
- POJ 1125 Stockbroker Grapevine【floyd简单应用】
- poj 1125 floyd简单应用
- POJ 2492 A Bug's Life【并查集的简单应用同类的判断】
- Sliding Window poj 单调队列的简单应用
- Floyd算法_Poj_1125
- Floyd算法的应用--POJ 2240
- poj 1125 Stockbroker Grapevine 最短路Floyd算法
- POJ 2236 Wireless Network 【并查集的简单应用 判断是否在同一连通分量】
- poj 1125 Stockbroker Grapevine ----Floyd算法,有向图
- poj 3140 简单的树的应用
- poj1125--Stockbroker Grapevine--Floyd算法
- POJ 1125 Stockbroker Grapevine(求最短路径—Floyd算法)
- POJ 1988 Cube Stacking【并查集的简单应用 堆木块】
- POJ 2236 Wireless Network 【并查集的简单应用 判断是否在同一连通分量】
- poj 3207 Ikki's Story IV - Panda's Trick(2-sat简单应用)
- POJ 3615 牛的最小最大起跳高度问题 Floyd算法的变形应用
- POJ 3615 牛的最小最大起跳高度问题 Floyd算法的变形应用
- POJ 1125 floyd算法
- poj 1611 The Suspects 初级->数据结构->简单并查集的应用