最小树——迪杰斯特拉算法
Current Server Time: 2013-09-12 23:58:47
Frogger
很不幸,Fiona所在的石头距离他有点远,甚至超出了他的跳跃能力。然而Freddy注意到湖中还有一些其他的石头。这些石头也许会将这个很长的跳跃距离化成若干个短的跳跃距离。
我们定义“青蛙距离”为Freddy跳到Fiona那里所需要的若干次跳跃中最长的那一次。现在给你Freddy,Fiona,以及湖中其他石头的坐标,让你求出最短的“青蛙距离”。
Input
Output
Sample Input
Sample Output
Source
Tags ( Click to see )
1 #include<iostream> 2 #include<algorithm> 3 #include<queue> 4 #include<cstdio> 5 #include<cstdlib> 6 #include<cstring> 7 #include<cmath> 8 #include<ctype.h> 9 using namespace std; 10 #define sr(x) scanf("%d",&x) 11 #define sc(x) printf("%d",x) 12 #define hh printf("\n") 13 struct PP 14 { 15 int x,y; 16 }zb[201]; 17 int juli(PP a,PP b) 18 { 19 return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y); 20 } 21 int main() 22 { 23 int n,k=1; 24 while(sr(n)&&n!=0) 25 { 26 double ll; 27 int i,j,l[201],jl[201],zd=-1; 28 for(i=0;i<n;i++){sr(zb[i].x);sr(zb[i].y);} 29 memset(l,0,sizeof(l)); 30 l[0]=1; 31 for(i=0;i<n;i++)jl[i]=juli(zb[0],zb[i]); 32 for(i=0;i<n-1;i++) 33 { 34 int da=999999999,s=0; 35 for(j=0;j<n;j++)if(l[j]==0&&da>jl[j]){s=j;da=jl[j];} 36 l[s]=1; 37 if(zd<da)zd=da; 38 if(s==1)break; 39 for(j=0;j<n;j++)if(l[j]==0&&juli(zb[s],zb[j])<jl[j])jl[j]=juli(zb[s],zb[j]); 40 } 41 ll=sqrt(zd); 42 if(k!=1)hh; 43 printf("Scenario #%d\n",k++); 44 printf("Frog Distance = %.3lf\n",ll); 45 } 46 return 0; 47 }
转载于:https://www.cnblogs.com/lveternal/p/3413489.html
最小树——迪杰斯特拉算法相关推荐
- 【数据结构】图的应用(普利姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法、拓扑排序)
最小生成树 什么是最小生成树 是一棵树 - 无回路 - |V|个顶点一定有|V|-1条边 是生成树 - 包含全部顶点 - |V|-1条边全在图里 贪心算法 什么是"贪":每一步都要 ...
- 迪杰斯特拉算法(C语言实现)
迪杰斯特拉算法(C语言实现) 如上图,求以a为源点到个顶点的最短路劲. #include "stdio.h" #include "stdlib.h" //用一个 ...
- C++迪杰斯特拉算法求最短路径
一:算法历史 迪杰斯特拉算法是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法.是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题.迪杰斯特拉算法主要特点是以 ...
- 迪杰斯特拉算法——PAT 1003
本文主要是将我对于我对于迪杰斯特拉算法的理解写出来,同时通过例题来希望能够加深对于算法的理解,其中有错误的地方希望大家指正. 迪杰斯特拉算法 我将这个算法理解成一个局部到整体的算法,这个方法确实越研究 ...
- 单源最短路径-Dijkstra(迪杰斯特拉算法)
迪杰斯特拉算法时间复杂度为O(n^2),其中n为顶点个数. 该算法用于求单源最短路径.并且图中的边不允许带负权值. #include <iostream> using namespace ...
- JavaScript实现dijkstra迪杰斯特拉算法(附完整源码)
JavaScript实现dijkstra迪杰斯特拉算法 PriorityQueue完整源代码 MinHeap.js完整源代码 Heap.js完整源代码 Comparator.js完整源代码 dijks ...
- C++实现Dijkstra(迪杰斯特拉)算法(附完整源码)
C++Dijkstra迪杰斯特拉算法的实现 C++Dijkstra(迪杰斯特拉)算法的完整源码(定义,实现,main函数测试) C++Dijkstra(迪杰斯特拉)算法的完整源码(定义,实现,main ...
- C语言实现Dijkstra(迪杰斯特拉)算法(附完整源码)
Dijkstra迪杰斯特拉 Graph结构体定义 迪杰斯特拉算法完整源码(定义,实现,main函数测试) Graph结构体定义 struct Graph {int vertexNum;int **ed ...
- 狄斯奎诺算法 c语言,图的邻接表实现迪杰斯特拉算法(C语言).doc
图的邻接表实现迪杰斯特拉算法(C语言) /*迪杰斯特拉算法(狄斯奎诺算法)解决的是从源点到其它所有顶点的最短路径问题*/ //算法实现: #include #include #define MAX 2 ...
- java迪杰斯特拉算法介绍_178-迪杰斯特拉(Dijkstra)算法基本介绍
2.网上数据结构和算法的课程不少,但存在两个问题: 1)授课方式单一,大多是照着代码念一遍,数据结构和算法本身就比较难理解,对基础好的学员来说,还好一点,对基础不好的学生来说,基本上就是听天书了 2) ...
最新文章
- 挨踢部落直播课堂第一期:起航2017——拥抱大数据
- 半圆阴影_圆中阴影部分面积求法的常用方法
- Build boost 1.66.0 with c++11
- 只会linux和sql能维护mes系统么,MES系统软件架构介绍
- ecshop在首页调用dedecms文章
- assertj断言异常_编写自定义的AssertJ断言
- 树莓派进阶之路 (029) - 语音识别模块 LD3320(原创)
- 【计算机网络】ACL工作原理及标准
- SpringBoot实战(二):SpringMvc接收xml请求
- 计算机语言的比较英文论文,科学网—撰写高质量英文科技论文的心态、布局、程序和方法 - 岳中琦的博文...
- Logistics人口模型
- 怎么清理计算机磁盘空间,电脑磁盘空间不足怎么清理
- python word文档合并_[Python 学习笔记]用Python进行docx文档合并
- 普通键盘Windows上虚拟Cherry机械键盘效果的方法
- win10双显卡开机黑屏时间长
- 洛克耶是如何发现氦元素的?
- Linux 时间一致性环境NTP/Chrony服务器部署配置
- 集成七牛云储存-上传图片Demo
- 3.2 回溯法—N皇后问题
- Python语言程序设计 习题5
热门文章
- php 多选按钮,单选和多选按钮如何给图片加样式
- 企业信用评分卡模型实战(python,附代码)
- java符号用语_java常用语
- Alamofire拦截请求AOP,URLProtocol
- 猴子都能懂的数据库范式详解
- 利用Python连接MySQL将表单转化为DataFrame
- BERT4Rec:知道用户的播放(购买、点击、...)序列 item1, item2, item3,预测下一个播放的item问题。
- python的字典合并有相同的_将列表中的重复项合并到python字典中
- idea的黄色感叹号之Spring Configuration Check (Please configura/setup Spring facet for modules)
- 一次性掌握计算机中常见的六类指令