【题目描述】:

平面上有n个点,每个点的坐标均在-10000~10000之间。其中的一些点之间有连线。若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。现在的任务是找出从一点到另一点之间的最短路径。
【输入描述】:

输入文件共n+m+3行,其中:第一行为整数n。

第2行到第n+1行(共n行) ,每行两个整数x和y,描述了一个点的坐标。

第n+2行为一个整数m,表示图中连线的个数。

此后的m 行,每行描述一条连线,由两个整数i和j组成,表示第i个点和第j个点之间有连线。

最后一行:两个整数s和t,分别表示源点和目标点
【输出描述】:

输出文件仅一行,一个实数(保留5位小数),表示从s到t的最短路径长度。
【样例输入】:

5
0 0
2 0
2 2
0 2
3 1
5
1 2
1 3
1 4
2 5
3 5
1 5

【样例输出】:

3.41421

【时间限制、数据范围及描述】:

时间:1s 空间:128M

n<=100

#### 题解:既然能用Floyd,那为什么要用Dijkstra呢?|滑稽|。n<=100,哈哈。代码无需解释,枚举顺序:中间点->起点->终点。[下一道题乖乖用dijkstra]

代码:

#include<bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<cstdio>
using namespace std;
const double oo=2147483646.00000;
int n,m,s1,s2;
double f[105][105];
struct node{int x,y;
}a[105];double minn(double p,double q){if(p<q) return p;else return q;
}double js(int e1,int e2){int t1=abs(a[e1].x-a[e2].x);int t2=abs(a[e1].y-a[e2].y);return (double)(sqrt(t1*t1+t2*t2));
}
int main(){freopen("275.in","r",stdin);freopen("275.out","w",stdout);scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d %d",&a[i].x,&a[i].y);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)f[i][j]=oo;scanf("%d",&m);while(m--){scanf("%d %d",&s1,&s2);double len=js(s1,s2);f[s1][s2]=len;f[s2][s1]=len;}int d1,d2;scanf("%d %d",&d1,&d2);for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)f[i][j]=minn(f[i][j],f[i][k]+f[k][j]);printf("%.5f",f[d1][d2]);return 0;
}

转载于:https://www.cnblogs.com/wuhu-JJJ/p/11123511.html

【UOJ 275】最短路径问题相关推荐

  1. 获取html滚动条位置,pc和移动端获取滚动条的位置

    html5碰撞小球模拟 这里根据动量守恒和能量守恒定理来计算小球的位置,从而模拟完全弹性碰撞下的小球运行轨迹. html代码: /p> spring jdbctemplate源码跟踪 闲着没事, ...

  2. Warshall算法多源点之间最短路径的算法最短距离

    简介:Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似.该算法名称以创始人之一.1978年图灵奖获得者.斯坦福大学计算机科学系 ...

  3. 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...

    问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...

  4. java找图最短路径_查找有向图最短路径

    老师有一个题: 使用狄克斯屈拉(Dikjstra)标号算法可得出解: 我用Java来实现了一下这个算法: package test; import java.util.ArrayList; impor ...

  5. python迷宫问题求最短路径_用栈求解迷宫问题的所有路径及最短路径程序

    目的:能将栈运用的更为熟练 实验内容:求解迷宫问题程序,要求输出如图所示的迷宫的路径,并求出第一条最短路径的长度以及最短路径. 设计的算法功能: mgpath(int xi,int yi,int xe ...

  6. Python访问街区所有节点最短路径问题,并结合matplotlib可视化

    Python访问街区所有节点最短路径问题,并结合matplotlib可视化 1. 效果图 2. 源码 2.1 5个点全排列(递归+非递归算法) 2.2 python遍历全路径计算距离+matplot可 ...

  7. uoj 117 欧拉回路

    1.判断是否为欧拉存在欧拉回路---裸的判断 欧拉回路就是看一笔能不能把途中所有的边跑完没得重复 对于无向边----建立双向边判断每个点的入度是否为2的倍数   1.1 对于有向边---建立单向边判断 ...

  8. 数据结构与算法(7-4)最短路径(迪杰斯特拉(Dijkstra)算法、弗洛伊德(Floyd)算法)

    目录 一.最短路径概念 二.迪杰斯特拉(Dijkstra)算法(单源最短路径) 1.原理 2.过程 3.代码 三.弗洛伊德(Floyd)算法(多源最短路径) 1.原理 2.存储 3.遍历 4.代码 参 ...

  9. oauth_client_details的值怎么添加_17.八年级数学:怎么求CDM周长的最小值?最短路径问题,经典考题...

    欢迎您来到方老师数学课堂,请点击上方蓝色字体,关注方老师数学课堂.所有的视频内容,全部免费,请大家放心关注,放心订阅. 八年级数学:怎么求△CDM周长的最小值?最短路径问题,经典考题.大家先在草稿本上 ...

最新文章

  1. 2-Runtime objc_object objc_class
  2. NAND Flash和NOR Flash的区别
  3. Sql Server 2008 精简版(Express)和管理工具的安装以及必须重新启动计算机才能安装 SQLServer的问题和第一次使用sqlexpress的连接问题
  4. 一起学nRF51xx 15 - spis
  5. 二次探测再散列举例_二次探测散列法
  6. 三相全桥整流电路_三相桥式全控整流电路
  7. VueCli3 项目结构和具体作用
  8. 全网最详细TCP参数讲解,再也不用担心没有面试机会了......
  9. Linux 小知识翻译 - 「架构 续」(arch)
  10. adb shell循环命令_Android adb 命令使用总结
  11. 状态空间离散化matlab,状态空间方程离散化的matlab处理
  12. 华北水院c语言实验报告答案,C语言实验报告(三)
  13. [AngularJS面面观] 16. 依赖注入 --- 注入器中如何管理对象
  14. k2p B1版本官改关闭路由器ipv6分配
  15. Spark性能优化之通过YDB实现比原生Spark性能高100倍的多表关联
  16. 基于vue3的移动端音乐播放器
  17. git+github+jenkins自动发布
  18. 解决iPhone连接电脑,照片每次弹出
  19. android 离线语言识别
  20. uniapp 热更新和整包更新

热门文章

  1. tuxedo错误码6_TUXEDO启动常见错误和解决方法
  2. problem c: 判断素数的函数_python100天 — Day 6 函数和模块的使用
  3. android p获取通话记录_Android 底层的进程间同步机制
  4. 蒙文字体怎么安装_我们来聊一聊iOS13的“字体”该怎么用?
  5. 随机生成元素升序向量_使用random_shuffle()算法随机化序列元素
  6. 不同版本的散点图矩阵
  7. express 文件服务器,Express搭建一个简单后台服务器
  8. Leetcode-105-从前序与中序遍历序列构造二叉树
  9. 三维计算机视觉(二)--点云滤波
  10. 决策树(七)--Boost及源码分析