#include<iostream>
#include<math.h>
#include<memory.h>
using namespace std;
#define inf 0x3f3f3f3f
int n,m;//n现有城镇数目,m道路数目
int map[][];
int dis[],vis[];
int path[];
void dijkstra(int a,int b)
{
int i,j,k,minn;
for(i=;i<n;i++)
{
dis[i]=map[a][i];
vis[i]=;
path[i]=a;
}
vis[a]=;
for(i=;i<n;i++)
{
minn=inf;
for(j=;j<n;j++)
{
if(vis[j]==&&dis[j]<minn)
{
k=j;
minn=dis[j];
}
}
vis[k]=;
for(j=;j<n;j++)
{
if(vis[j]==&&dis[j]>dis[k]+map[k][j])
{
dis[j]=dis[k]+map[k][j];
path[j]=k; //j是从k过来的
}
}
}
}
int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
int a,b,x,s,e;
memset(map,inf,sizeof(map));
for(int i=;i<m;i++)
{
cin>>a>>b>>x;
if(map[a][b]>x)//城镇之间道路不止一条
map[a][b]=map[b][a]=x;
}
cin>>s>>e;
dijkstra(s,e); int p[],k=,temp=e; //输出路径
while(temp!=s)
{
p[k++]=temp; //一开始p[0]=终点
temp=path[temp]; //倒着来,是谁推向temp的
}
p[k]=s;
for(int i=k;i>;i--)
cout<<p[i]<<" ";
cout<<p[]<<endl;
}
}

dijstra+输出路径总结的更多相关文章

  1. VS 工程的 输出路径和工作路径的区别

    输出路径,是vs编译项目生成可执行文件的路径:工作路径是环境变量,比如我们在程序中写相对路径,就是以这个路径为基础的.在默认情况下,输出路径和工作路径都不写的话,默认是程序的bin下面的debug或者 ...

  2. HD1385Minimum Transport Cost(Floyd + 输出路径)

    Minimum Transport Cost Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

  3. C++builder XE 安装控件 及输出路径

    C++builder XE 安装控件 与cb6不一样了,和delphi可以共用一个包. 启动RAD Studio.打开包文件. Project>Options>Delphi Compile ...

  4. HDU 1385 Minimum Transport Cost (最短路,并输出路径)

    题意:给你n个城市,一些城市之间会有一些道路,有边权.并且每个城市都会有一些费用. 然后你一些起点和终点,问你从起点到终点最少需要多少路途. 除了起点和终点,最短路的图中的每个城市的费用都要加上. 思 ...

  5. web项目Log4j日志输出路径配置问题

    问题描述:一个web项目想在一个tomcat下运行多个实例(通过修改war包名称的实现),然后每个实例都将日志输出到tomcat的logs目录下实例名命名的文件夹下进行区分查看每个实例日志,要求通过尽 ...

  6. VJP1071新年趣事之打牌(背包+输出路径)

    简单的01背包 保存下方案总数 其实就是dp[v]值 输出路径dfs一下 #include <iostream> #include<cstdio> #include<cs ...

  7. (poj)3414 Pots (输出路径的广搜)

    Description You are given two pots, having the volume of A and B liters respectively. The following ...

  8. Cmake 脚本对项目输出路径和输出头文件的路径定义

    对Lib项目的统一输出路径以下时解决方案: set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Lib)set(CMAKE_LIBRARY_O ...

  9. Part Acquisition(spfa输出路径)

    Part Acquisition Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4080   Accepted: 1742 ...

随机推荐

  1. ios开发在导入环信SDK后运行出现 Reason: image not found 的解决方案

    在导入环信的SDK后,运行出现:

  2. 项目打包部署到tomcat操作步骤

    对于项目部署到tomcat中,需进行一下步骤: 1.对于项目打war包,方式有以下几种:install一下   找到war包的路径即可 另外:在eclipse中,选中项目 1.1 选中Export 1 ...

  3. python编程常见小技巧

    #主要是记录常见的小问题以及解决办法 ##1.复制的代码,经常出现TAB和空格不一致的情况 将tab或者空格删除,然后重新打出空格或者tab就可以了: ##2.python读取文件,经常出现的编码en ...

  4. Python之Django总结

    一.Django 总结django知识点   一.视图函数:     请求对象-----------request:           1.HttpRequest.body:         请求原 ...

  5. Python之爬虫总结

    一.爬虫之requests a.介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3)     b.注意:re ...

  6. 爬虫之解析库-----re、beautifulsoup、pyquery

    一.介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你 ...

  7. JMeter报错 ERROR o.a.j.t.JMeterThread: Test failed!

    第一次用JMeter,然后跟着教程走,发现进行测试的时候直接报错 显示如下 反复测试依然报错,网上搜索也没什么结果,自己测试了一下才发现问题. 左边创建了CSV DATA 但是并没有进行设置  导致报 ...

  8. Python快速学习-高级特性

    1.切片 取一个list或tuple的部分元素是非常常见的操作 L = ['hello','the','world','and','my','love'] 取前三个元素 L[0:3],L[:3] 取倒 ...

  9. Ubuntu 中查看内核版本和系统版本的四个命令

    一.查看内核版本:cat /proc/version 二.查看内核版本:uname -a 三.查看系统版本:lsb_release -a 四.查看发行版类型:cat /etc/issue

  10. redis.h

    [对象] typedef struct redisObject {     unsigned type:4;[REDIS_STRING,REDIS_LIST, HASH, SET, ZSET]     ...