栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 1456 Minimum Transport Cost

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 1456 Minimum Transport Cost

#include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;int N;int G[1005][1005]; int path[1005][1005];  int dis[1005];   int add[1005];   void floyd() {    int reca[1005], recb[1005], idxa, idxb;    for (int i = 1; i <= N; ++i) {        for (int j = 1; j <= N; ++j) { path[i][j] = j; }    }    for (int k = 1; k <= N; ++k) {        for (int i = 1; i <= N; ++i) { if (i == k || G[i][k] == -1) continue; for (int j = 1; j <= N; ++j) {     if (j == k || G[k][i] == -1) continue;     if (G[i][k] != -1 && G[k][j] != -1) {         if(G[i][j] > G[i][k] + G[k][j] || G[i][j] == -1) {  G[i][j] = G[i][k] + G[k][j];  path[i][j] = path[i][k];         } else if (G[i][j] == G[i][k] + G[k][j]) {  if (path[i][j] > path[i][k]) {       path[i][j] = path[i][k];  }         }     } } }        }}void display(int x, int y) {    if (x != y) {        printf("-->%d", path[x][y]);        display(path[x][y], y);    }}int main() {    while (cin >> N, N) {        memset(path, 0xff, sizeof (path));        for (int i = 1; i <= N; ++i) { for (int j = 1; j <= N; ++j) {     scanf("%d", &G[i][j]); }        }        for (int i = 1; i <= N; ++i) { scanf("%d", &add[i]);        }        for (int i = 1; i <= N; ++i) { for (int j = 1; j <= N; ++j) {     if (i == j || G[i][j] == -1) continue;     else G[i][j] += add[j]; }         }        floyd();        int a, b, first;        while (scanf("%d %d", &a, &b), a!=-1 && b!=-1) { first = 1; printf("From %d to %d :n", a, b); printf("Path: %d", a); display(a, b); puts(""); printf("Total cost : %dnn", a!=b ? G[a][b]-add[b] : 0);        }    }    return 0;    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/368415.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号