博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++点的距离
阅读量:2146 次
发布时间:2019-04-30

本文共 858 字,大约阅读时间需要 2 分钟。

这里用迪杰斯特拉

#include 
#include
#include
using namespace std;int main(){
double e[100][100]; int n,m,p[100][100],q1,q2,book[100]={
0},u,start,end; double mini,maxn=99999.00; cin>>n; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(i==j) e[i][j]=0; else e[i][j]=maxn; for(int i=1;i<=n;i++) cin>>p[i][1]>>p[i][2]; cin>>m; for(int i=1;i<=m;i++){
cin>>q1>>q2; e[q1][q2]=sqrt(pow(p[q1][1]-p[q2][1],2)+pow(p[q1][2]-p[q2][2],2)); e[q2][q1]=e[q1][q2]; } cin>>start>>end; for(int i=1;i<=n;i++) e[start][i]=e[1][i]; book[1]=0; for(int i=1;i<=n;i++){
mini=maxn; for(int j=1;j<=n;j++){
if(book[j]==0&&mini>e[start][j]){
u=j; mini=e[start][j]; } } book[u]=1; for(int k=1;k<=m;k++) if(e[start][k]>e[start][u]+e[u][k]) e[start][k]=e[start][u]+e[u][k]; } printf("%.2f",e[start][end]); return 0;}

转载地址:http://luggf.baihongyu.com/

你可能感兴趣的文章
走进JavaWeb技术世界12:从手动编译打包到项目构建工具Maven
查看>>
走进JavaWeb技术世界13:Hibernate入门经典与注解式开发
查看>>
走进JavaWeb技术世界14:Mybatis入门
查看>>
走进JavaWeb技术世界16:极简配置的SpringBoot
查看>>
初探Java设计模式1:创建型模式(工厂,单例等)
查看>>
初探Java设计模式2:结构型模式(代理模式,适配器模式等)
查看>>
初探Java设计模式3:行为型模式(策略,观察者等)
查看>>
初探Java设计模式4:一文带你掌握JDK中的设计模式
查看>>
初探Java设计模式5:一文了解Spring涉及到的9种设计模式
查看>>
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
查看>>
Java集合详解2:一文读懂Queue和LinkedList
查看>>
Java集合详解3:一文读懂Iterator,fail-fast机制与比较器
查看>>
Java集合详解4:一文读懂HashMap和HashTable的区别以及常见面试题
查看>>
Java集合详解5:深入理解LinkedHashMap和LRU缓存
查看>>
Java集合详解6:这次,从头到尾带你解读Java中的红黑树
查看>>
Java集合详解7:一文搞清楚HashSet,TreeSet与LinkedHashSet的异同
查看>>
Java集合详解8:Java集合类细节精讲,细节决定成败
查看>>
Java并发指南1:并发基础与Java多线程
查看>>
Java并发指南2:深入理解Java内存模型JMM
查看>>
Java并发指南3:并发三大问题与volatile关键字,CAS操作
查看>>