dijstra+输出路径总结
#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+输出路径总结的更多相关文章
- VS 工程的 输出路径和工作路径的区别
输出路径,是vs编译项目生成可执行文件的路径:工作路径是环境变量,比如我们在程序中写相对路径,就是以这个路径为基础的.在默认情况下,输出路径和工作路径都不写的话,默认是程序的bin下面的debug或者 ...
- HD1385Minimum Transport Cost(Floyd + 输出路径)
Minimum Transport Cost Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O ...
- C++builder XE 安装控件 及输出路径
C++builder XE 安装控件 与cb6不一样了,和delphi可以共用一个包. 启动RAD Studio.打开包文件. Project>Options>Delphi Compile ...
- HDU 1385 Minimum Transport Cost (最短路,并输出路径)
题意:给你n个城市,一些城市之间会有一些道路,有边权.并且每个城市都会有一些费用. 然后你一些起点和终点,问你从起点到终点最少需要多少路途. 除了起点和终点,最短路的图中的每个城市的费用都要加上. 思 ...
- web项目Log4j日志输出路径配置问题
问题描述:一个web项目想在一个tomcat下运行多个实例(通过修改war包名称的实现),然后每个实例都将日志输出到tomcat的logs目录下实例名命名的文件夹下进行区分查看每个实例日志,要求通过尽 ...
- VJP1071新年趣事之打牌(背包+输出路径)
简单的01背包 保存下方案总数 其实就是dp[v]值 输出路径dfs一下 #include <iostream> #include<cstdio> #include<cs ...
- (poj)3414 Pots (输出路径的广搜)
Description You are given two pots, having the volume of A and B liters respectively. The following ...
- Cmake 脚本对项目输出路径和输出头文件的路径定义
对Lib项目的统一输出路径以下时解决方案: set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Lib)set(CMAKE_LIBRARY_O ...
- Part Acquisition(spfa输出路径)
Part Acquisition Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4080 Accepted: 1742 ...
随机推荐
- ios开发在导入环信SDK后运行出现 Reason: image not found 的解决方案
在导入环信的SDK后,运行出现:
- 项目打包部署到tomcat操作步骤
对于项目部署到tomcat中,需进行一下步骤: 1.对于项目打war包,方式有以下几种:install一下 找到war包的路径即可 另外:在eclipse中,选中项目 1.1 选中Export 1 ...
- python编程常见小技巧
#主要是记录常见的小问题以及解决办法 ##1.复制的代码,经常出现TAB和空格不一致的情况 将tab或者空格删除,然后重新打出空格或者tab就可以了: ##2.python读取文件,经常出现的编码en ...
- Python之Django总结
一.Django 总结django知识点 一.视图函数: 请求对象-----------request: 1.HttpRequest.body: 请求原 ...
- Python之爬虫总结
一.爬虫之requests a.介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) b.注意:re ...
- 爬虫之解析库-----re、beautifulsoup、pyquery
一.介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你 ...
- JMeter报错 ERROR o.a.j.t.JMeterThread: Test failed!
第一次用JMeter,然后跟着教程走,发现进行测试的时候直接报错 显示如下 反复测试依然报错,网上搜索也没什么结果,自己测试了一下才发现问题. 左边创建了CSV DATA 但是并没有进行设置 导致报 ...
- Python快速学习-高级特性
1.切片 取一个list或tuple的部分元素是非常常见的操作 L = ['hello','the','world','and','my','love'] 取前三个元素 L[0:3],L[:3] 取倒 ...
- Ubuntu 中查看内核版本和系统版本的四个命令
一.查看内核版本:cat /proc/version 二.查看内核版本:uname -a 三.查看系统版本:lsb_release -a 四.查看发行版类型:cat /etc/issue
- redis.h
[对象] typedef struct redisObject { unsigned type:4;[REDIS_STRING,REDIS_LIST, HASH, SET, ZSET] ...