#include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
#define maxn 1005
int D[maxn][maxn];
int P[maxn][maxn];
int N,M; //顶点数边数
int S,E; //起点终点
void Floyd()
{
for(int k=1;k<=N;k++)
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j++)
{
if(D[i][j]>D[i][k]+D[k][j])
{
D[i][j]=D[i][k]+D[k][j];
P[i][j]=P[k][j];
}
}
}
int main()
{
//init
memset(D,0x3f,sizeof(D));
memset(P,0x3f,sizeof(P));
//录入图
cin>>N>>M;
for(int i=1;i<=M;i++)
{
int u,v,cost;
cin>>u>>v>>cost;
if(cost<D[u][v]) //D的初始化为边的信息
{
D[u][v]=cost;
//D[v][u]=cost;//无向图
}
}
for(int i=1;i<=N;i++) //初始化P
for(int j=1;j<=N;j++)
{
if(i!=j&&D[i][j]!=INF) //P第0层为i
P[i][j]=i;
}
cin>>S>>E;
//
Floyd();
//最短距离
cout<<D[S][E]<<endl;
//路径回溯
int temp=P[S][E];
cout<<E;
while(true)
{
if(temp==S)
{
cout<<"<--"<<S<<endl;
break;
} cout<<"<-"<<P[S][temp];
temp=P[S][temp];
}
}

最新文章

  1. 基于SSM的租赁管理系统0.3_20161225_数据库设计
  2. MVVM架构~knockoutjs系列之扩展ajax验证~验证输入数据是否与后台数据相等
  3. Install Docker on Mac OS X(转)
  4. 【JSON 注解】JSON循环引用2----JSON注解@JsonIgnoreProperties+JAVA关键字transient+后台对象与JSON数据的格式互相转化
  5. 关于NSDate和NSDateFormatter的几个常用方法
  6. aspcms网站访问出现3706错误, 错误描述:未找到提供程序。该程序可能未正确安装,解决的方法。
  7. Redis-sentinel监控
  8. Android后门GhostCtrl,完美控制设备任意权限并窃取用户数据
  9. Java-SSM框架页面时间格式转换
  10. 19、Squid代理服务器
  11. Python threading中lock的使用
  12. shell正常运行,加入定时任务执行失败
  13. select min from 连接
  14. Centos7下python3安装pip-9.0.1
  15. requestFeature() must be called before adding content产生原因和解决办法
  16. 基于jQuery和CSS3超酷Material Design风格滑动菜单导航特效
  17. 登录使用inode的校园网用到的url
  18. Poj 1401 Factorial(计算N!尾数0的个数——质因数分解)
  19. LOJ#2304. 「NOI2017」泳池
  20. pycharm上传代码到码云(详细)

热门文章

  1. Linux 文件管理篇(二 目录信息)
  2. asap异步执行实现原理
  3. "四号标题"组件:&lt;h4&gt; —— 快应用组件库H-UI
  4. Python设计模式(6)-原型模式
  5. 三、ARP协议和ICMP协议
  6. 奥卡姆剃刀原则在ERP项目的应用
  7. Docker php安装扩展步骤详解
  8. D3.js 力导向图的拖拽(drag)与缩放(zoom)
  9. flutter和react native如何选择
  10. Windows线程+进程通信