【题目描述】:

平面上有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. R语言ggplot2在可视化图像中添加横线并在横线中添加文本、为横线中添加的文本添加文本框、自定义文本框的填充色(background color for a text annotation)
  2. python opencv读写图片
  3. 倪海厦天纪笔记16_倪海厦老师讲解天纪易经——第3集(13)
  4. Spring JMS
  5. mysql集群会备份数据吗_mysql ndb集群备份数据库和还原数据库的方法
  6. csdn在markdown笔记中复制代码格式混乱的解决办法
  7. 杭电1280java实现
  8. mysql合并表中的数据
  9. ES6~ES12——Array Includes、Object values、Object entries、Object fromEntries、flat、flatMap、空值合并运算符、可选链等
  10. main在c语言中的作用,main函数在C语言中是怎么定义的?有什么作用?
  11. Android特色开发之账户管理
  12. vue 监听div滚动事件
  13. SRIO IP的学习与应用
  14. 如何成为一个合格的JAVA初级程序员
  15. Java面试题大全(part_4)
  16. 茶 与 茶道 之 人生如茶
  17. C++(30)—奇偶数判断
  18. 【汇正财经】怎样利用价值投资买牛票?
  19. 加多芬科技讲解目前趋势“不带钱包出门”已成趋势 无现金支付你准备好了吗?
  20. Intellij idea Tips 之 创建文件自动生成文档描述

热门文章

  1. 压力测试和负载测试区别_性能测试vs压力测试vs负载测试
  2. linux查看u盘的分区,在Linux下访问windows分区以及U盘
  3. 网站点赞 评论 回复 数据库设计
  4. 使用python turtle库绘制一个三角形和一个五角星_使用turtle库绘制一个五角星 如何采用Python语言绘制一个五角星...
  5. python数据分析实例_python数据分析实例3-商铺数据加载及存储
  6. 让代码不运行的快捷键html5,使用 vscode 实现写代码双手不用离开键盘
  7. RabbitMQ教程_5 整合SpringBoot
  8. 软工导论测试代码(归档):设备管理系统
  9. win10如何用管理员权限去运行服务器,让Visualstudio在win10下使用管理员方式运行...
  10. 【C++入门】C++ STL概述