题目大意 求多组i到j的最短路径 并输出字典序最小....

现在只会floyd的方式

利用dis[i][j] 表示i到j的路径中i 后面的节点

更新是比较dis[i][j] dis[i][k].

记住这个就好 ,其余存法貌似会有问题。代码如下:

#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <ctime>
#include <algorithm>
#include <iostream>
#include <sstream>
#include <string>
#define oo 0x13131313
using namespace std;
const int maxn=50+5;
int N;
int MAP[maxn][maxn];
int dis[maxn][maxn];
int w[maxn];
void input()
{for(int i=1;i<=N;i++)for(int j=1;j<=N;j++)dis[i][j]=1000000000;memset(MAP,0,sizeof(MAP));memset(w,0,sizeof(w));for(int i=1;i<=N;i++)for(int j=1;j<=N;j++){int c;scanf("%d",&c);if(c==-1){MAP[i][j]=1000000000;}else MAP[i][j]=c;}for(int i=1;i<=N;i++){scanf("%d",&w[i]);}
}
int FIND(int a,int b)
{if(dis[a][b]!=1000000000){return FIND(a,dis[a][b]);}else return b;
}
void floyd()
{for(int i=1; i<=N; i++)for(int j=1; j<=N; j++)dis[i][j] = j;for(int k=1;k<=N;k++){for(int i=1;i<=N;i++)for(int j=1;j<=N;j++){int new_patl = MAP[i][k] + MAP[k][j] + w[k];if(MAP[i][j]>new_patl){MAP[i][j]=new_patl;dis[i][j]=dis[i][k];}else  if(MAP[i][j]==new_patl){dis[i][j]=min(dis[i][j],dis[i][k]);}}}
}
void solve()
{int CASE=0;int n,m;int next;while(cin>>n>>m&&(n!=-1&&m!=-1)){printf("From %d to %d :\n",n,m);printf("Path: ");next = n;while(next != m){printf("%d-->", next);next = dis[next][m];}printf("%d\n", next);printf("Total cost : %d\n",MAP[n][m]);printf("\n");}
}
void init()
{freopen("a.in","r",stdin);freopen("a.out","w",stdout);
}
int main()
{// init();while(cin>>N&&N){input();floyd();solve();}
}

转载于:https://www.cnblogs.com/zy691357966/p/5480360.html

【floyd存字典序路径】【HDU1385】【Minimum Transport Cost】相关推荐

  1. [floyd+路径输出]HDU1385 Minimum Transport Cost

    题目链接 题目翻译: 有N个城市,然后直接给出这些城市之间的邻接矩阵,矩阵中-1代表那两个城市无道路相连,其他值代表路径长度. 如果一辆汽车经过某个城市,必须要交一定的钱(可能是过路费). 现在要从a ...

  2. HDU 1385 Minimum Transport Cost

    HDU 1385 Minimum Transport Cost 我的WA代码 AC的代码 我的WA代码 我的大概思路就是,如果i->j,如果找到一个中间点k就直接简单的将path[i][j]=k ...

  3. 图论--最短路--Floyd(含路径输出)

    #include<bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f #define maxn 1005 int D[ma ...

  4. 【POJ - 2594】Treasure Exploration(floyd传递闭包 + 最小路径覆盖,图论)

    题干: Have you ever read any book about treasure exploration? Have you ever see any film about treasur ...

  5. mysql 图片路径用什么类型_mysql数据库怎么存图片路径

    你貌似是做那种类似新闻的文章吧,这个问题应该没必要这么纠结,我推荐你使用CKEDITOR吧,不熟悉编辑器的话,这个还可以,而且dedecms那个后台添加文章的内容的时候也是用的这个编辑器(他就支持你图 ...

  6. php mysql存图片路径_PHP 批量下传图片 怎么保存路径到mysql

    PHP 批量上传图片 如何保存路径到mysql 在网上找到一个PHP+FLASH 的批量上传图片的程序 但是我想把图片的路径 取出来 存入MYSQL数据库中 PHP代码如下 PHP code0) { ...

  7. mysql数据库保存图片路径_mysql数据库怎么存图片路径

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  8. 【HDOJ图论题集】【转】

    1 =============================以下是最小生成树+并查集====================================== 2 [HDU] 3 1213 How ...

  9. 图论练习题(存起来练)

    =============================以下是最小生成树+并查集======================================  [HDU]  1213 How Man ...

最新文章

  1. 关于一些对location认识的误区(转)
  2. 云计算——让学习更轻松
  3. 技术帖:砖混、砖木、钢混、板楼、塔楼、框架、框架剪力墙等概念之区别优劣...
  4. Java-js处理textarea自动生成的制表符(空格,换行,tab等)
  5. 隐含马尔可夫模型在语言处理中的应用(Z)
  6. HashMap为什么在多线程下会让cpu100%
  7. 解决“计划任务不存在的问题”方法
  8. 没有bug队——加贝——Python 57,58
  9. 嵌入式实时操作系统的可裁剪性及其实现
  10. Linux运维之--zabbix使用(实时更新)
  11. python就业前景不好_python哪个方向容易就业
  12. 不同编译单元内的非局部静态对象的初始化次序问题
  13. amlogic_android7.1的s905x平台长按按键5s清除数据和缓存的实现思路
  14. ubuntu 10.04下vmware tools安装和一些应用
  15. 还不知道事务消息吗?这篇文章带你全面扫盲!
  16. 第一章 spss入门
  17. koolshare DDNS 配置
  18. [论文笔记]Outfit Compatibility Prediction and Diagnosis with Multi-Layered Comparison Network
  19. ftp工具FileZilla下载安装配置
  20. ArrayList 和 Vector 的区别是什么?

热门文章

  1. 【项目实战课】人人免费可学!基于Pytorch的图像分类简单任务数据增强实战
  2. 【杂谈】我在有三AI从学生到老师
  3. lazada本地店怎么开通,需要什么条件?
  4. 全球及中国静脉器械行业发展形势及前景战略规划建议报告2021-2027年版
  5. django项目学习之QQ登录
  6. 单链表反转的原理和python代码实现
  7. tf.unstack\tf.unstack
  8. django时差8个小时问题
  9. safair 的css hack
  10. struts2注解json 配置文件json