题目地址

ACM 2017 Asia HongKong D题

题目大意:

求某两个点之间的最短距离,起点为a,终点为b,然后,求两个点之间的最短距离。

算法思路:

  • 本题采用迪杰斯特拉算法求最短路径。
  • 由于迪杰斯特拉算法的特性,求所有终点的最短路径好求。
  • 关键是不定起点的要求。
  • 不过代码还是很好改。
  • 算是模板题了

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
#define inf 1<<29
#define MAXV 51
using namespace std;
int map[51][51];
int n;
int a,b;
//相当于2的29次方
//相当于无限大
void dijkstra(int a,int b){int i,j,min,v;int d[MAXV];//最短路径bool vis[MAXV];//记录该点是否已经加入了图中for(i=1;i<=n;i++){vis[i]=0;d[i]=map[a][i];//不定长度需要修改的地方1}
//初始化所有的点到起点的距离for(i=1;i<=n;i++){min=inf;//初始化为无穷大for(j=1;j<=n;j++)if(!vis[j] && d[j]<min){//如果该点还不在整个最短路径途中//如果该点到起始点的距离为v=j;//找的路径最短的点min=d[j];//设置最短路径}//寻找在这个图的规模中的最短路径vis[v]=1;//设置为已找到for(j=1;j<=n;j++)if(!vis[j] && d[j]>map[v][j]+d[v])//更新条件//1.还没找到最短路径//2.dj比新找到的点的最短路径加上到新加的点的最短路径的和要短d[j]=map[v][j]+d[v];//更新dj}//所有点的最短路径都找到了//输出到最后一个点的最短距离printf("%d\n",d[b]);//需要修改的地方2
}
int main()
{int i,j;int x,y,len;while(cin>>n){cin>>a>>b;for(i=1;i<=n;i++)for(j=1;j<=n;j++){if(i==j){map[i][i]=0;}//从一个点到这个点本身的最短距离为零else {map[i][j]=map[j][i]=inf;}}//初始化为无穷大
//相当于memset函数的作用while(cin>>x&&x!=0){cin>>y>>len;if(map[x][y]>len) map[x][y]=map[y][x]=len;//赋值}dijkstra(a,b);}return 0;
}

起点终点未定的最短路径——ACM_HongKong D题相关推荐

  1. 用Postgis算最短路径(在任意位置选择起点终点)

    1.前言 阅读本文需要知道什么是shapfile,什么是路径分析,什么是GIS.相比Arcgis的路径分析功能,本文介绍的方法稍微复杂,需要注意的细节更多,但却是完全免费的.PostGis+QGIS+ ...

  2. java gis 最短路径_用Postgis算最短路径(在任意位置选择起点终点)(下)

    今天将上一次路径绘制的坑(上次绘制的是子路径端点的连线)给填了,本文中我将实现一个输入起点和终点经纬度,输出完整路径(包含子路径端点间的真实弯曲情况,完美贴合真实路径)的函数,能够计算准确的路径长度. ...

  3. 确定起点终点的无闭环旅行商问题经典蚁群算法程序

    在经典蚁群算法程序基础上修改: 确定起点终点 无闭环,即走遍之后不返回起点 程序包括两个文件,一个主函数,一个distance函数 主函数: %% I. 清空环境 clc clear all %% I ...

  4. PHP显示今天、今月、上月、今年的起点/终点时间戳

    PHP显示今天.今月.上月.今年的起点/终点时间戳 $t = time(); t1=mktime(0,0,0,date("m",t1 = mktime(0,0,0,date(&qu ...

  5. arcgis 属性表中起点终点创建线_一种GIS单线路网自动生成双线路网的方法与流程...

    本发明涉及GIS路网领域,尤其是涉及一种GIS单线路网自动生成双线路网 的方法. 背景技术: GIS路网是将真实道路,通过GIS数据的形式可视化表达出来.目前主流的 道路网模型是单线双属性的节点-路段 ...

  6. Java 代码分享(第4篇),绘制迷宫2 绘制起点终点和路径

    开发环境: 操作系统Win10. 1.下载Java 15,提取码:soft 2.下载软件 Eclipse 2020-12,提取码:soft 3.生成迷宫第1版 下载本博客的实例工程代码,提取码:sof ...

  7. 微信小程序调用地图设置起点终点导航

    本文主要讲一下如何使用微信内置地图设置起点终点并导航 传送门:微信小程序API~位置信息 准备工作:在app.json文件中配置可获得当前位置的许可 "permission": { ...

  8. java车次信息_java实现根据起点终点和日期查询去哪儿网的火车车次和火车站点信息...

    本文章为原创文章,转载请注明,欢迎评论和改正. 一,分析 之前所用的直接通过HTML中的元素值来爬取一些网页上的数据,但是一些比较敏感的数据,很多正规网站都是通过json数据存储,这些数据通过HTML ...

  9. Android开发-根据起点终点实现直线逐点绘制动画-01

    先上效果图:我们要来实现,2个球,中心点的连线动画 简化后的效果是这样: 先说一下实现原理: 1.自定义一个控件,继承View. 在实力化这个View的时候,初始化画笔(Paint)和路径(Path) ...

最新文章

  1. mathtype公式如何在word中对齐
  2. Java学习——Java运算符
  3. IDEA 创建 SpringCloud项目-多项目方式
  4. (转)十分钟搞定你自己的多图片/文件服务器
  5. Xcode升级插件失效修复快捷方式
  6. hadoop入门学习教程--DKHadoop完整安装步骤
  7. GPS NMEA-0183标准数据介绍
  8. jQuery.ajax处理继续响应:“成功:”还是“ .done”?
  9. codeforces 369C Valera and Elections
  10. 小D课堂 - 新版本微服务springcloud+Docker教程_6-01 微服务网关介绍和使用场景
  11. WPF 入门教程打印控件
  12. C/C++ 内存泄漏检测工具汇总
  13. mac桌面键盘快捷键_使用键盘快捷键更改桌面分辨率
  14. 蓝牙协议分析(6)_BLE地址类型
  15. 奖励补贴有点多!武汉市大健康和生物技术产业发展奖励措施解读
  16. 基于51单片机的信号发生器设计
  17. Android平台交叉编译流程
  18. 1061 判断题 PTA
  19. MYSQL高可用之PXC
  20. 提取文件名-Java

热门文章

  1. ubuntu22.04安装Nvidia显卡驱动后网络驱动消失的解决方案
  2. DELL技术支持电话及网站列表
  3. Tell me, I'll forget. Show me, I may remember. But involve me and I'll understand.”Chinese Proverb
  4. 33.递归数列XDOJ
  5. java memento_备忘录模式-Memento Pattern(Java实现)
  6. 简体转换繁体的郁闷话题,问题终于解决了
  7. 360和搜狗浏览器兼容模式和极速模式切换登录态丢失问题
  8. JS:NPM依赖包版本号波浪字符~
  9. 数据治理(一)自研血缘关系
  10. 创业者应该特别熟悉哪些法律知识,以及如何规避法律风险