hdoj1385_Minimum Transport Cost(多源最短路)
来源:互联网 发布:python multiply函数 编辑:程序博客网 时间:2024/05/21 10:01
思路:floyd
#include<iostream>#include<string.h>#include<vector>#include<algorithm>using namespace std;vector<int> pathcost[10000];vector<int> pre[10000];vector<int> cost[10000];vector<int> citycost;void floyd(int n){ for (int k = 0; k < n; k++) for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) { if (cost[i][j] > cost[i][k] + cost[k][j] + citycost[k]) { cost[i][j] = cost[i][k] + cost[k][j] + citycost[k]; pre[i][j] = pre[i][k]; } else if (cost[i][j] == cost[i][k] + cost[k][j] + citycost[k]) { if (pre[i][j] > pre[i][k]) { pre[i][j] = pre[i][k]; } } }}void solve(int s, int d){ int inis = s, inid = d; s -= 1; d -= 1; vector<int> v; v.clear(); v.push_back(s); while (pre[s][d]!=d) { v.push_back(pre[s][d]); s = pre[s][d]; } v.push_back(d); cout << "From "<<inis<<" to "<<inid<<" :" << endl; cout << "Path: "; if (inis == inid) cout << inis; else{ for (int i = 0; i < v.size(); i++) { cout << v[i] + 1; if (i < v.size() - 1) cout << "-->"; } } cout << endl; cout << "Total cost : " <<cost[inis-1][inid-1] << endl;}int main(){ int n; while (cin >> n&&n) { for (int i = 0; i < n; i++) { pre[i].clear(); pathcost[i].clear(); cost[i].clear(); } citycost.clear(); for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) { int tpc; cin >> tpc; pathcost[i].push_back(tpc); if (pathcost[i][j] != -1) cost[i].push_back(tpc); else cost[i].push_back(99999999); pre[i].push_back(j); } for (int i = 0; i < n; i++) { int tcc; cin >> tcc; citycost.push_back(tcc); } floyd(n); int s, d; while (cin >> s >> d&&s != -1) { solve(s, d); cout << endl; } } return 0;}
0 0
- hdoj1385_Minimum Transport Cost(多源最短路)
- hdu1385Minimum Transport Cost 最短路
- HDU-1385 Minimum Transport Cost(最短路[Dijkstra])
- HDOJ--1385--Minimum Transport Cost(最短路记录路径)
- hdu 1385 Minimum Transport Cost(最短路+记录路径)
- hdu 1385 Minimum Transport Cost(最短路+输出路径)
- zoj 1456Minimum Transport Cost 最短路
- zoj 1456 Minimum Transport Cost 最短路
- hdu1385Minimum Transport Cost(最短路变种)
- hdu 1385(zoj 1456)Minimum Transport Cost(最短路,输出路径,Floyd实现)
- HDU 1385 Minimum Transport Cost(Floyd 最短路 打印路径)
- HDU 1385 Minimum Transport Cost (最短路+记录路径+字典序)
- HDOJ 题目1385 Minimum Transport Cost(最短路,输出路径)
- HDOJ 题目 1385 Minimum Transport Cost(最短路输出路径)
- hdu 1385 Minimum Transport Cost(最短路 + 字典序最小路径)
- 暑假-最短路(Bellman-ford、spfa)-C - Minimum Transport Cost
- hdu 1385 Minimum Transport Cost(最短路,floyd打印字典序路径)
- HDU 1385 Minimum Transport Cost(最短路Floyd+标记路径)
- c++的运算符及其优先级
- android 系统内存显示
- 初学MFC——VS2013下为对话框添加消息响应函数
- oracle常用
- 数据库top和distinct的用法
- hdoj1385_Minimum Transport Cost(多源最短路)
- 现有的一些人脸数据库
- listview OnScrollListener 方法
- OpenCL的框架
- 用Apache的HTACCESS保护密码
- xml基础
- fatal error LNK1104: 无法打开文件“LIBC.lib”
- MySQL常用
- jdk导证书