当前位置: 首页 > news >正文

最短路径问题

D 最短路径问题 - 第七届校赛热身赛 —— 补题

题目大意:

平面上有 n n n 个点( n < = 100 n<=100 n<=100 ),每个点坐标均在 [ − 10000 , 10000 ] [-10000,10000] [10000,10000] 之间,给定 m m m 条边表示第 $u_i $和 v i v_i vi 点有一条边连接,现在任务是找出从一点到另一点之间的最短路径。

思路:

n n n 只有 100 100 100 ,可以跑一边 n 2 n^2 n2 的朴素 d i j k s t r a dijkstra dijkstra,边的大小表示为两点之间的距离

代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define fi first
#define se second
const int N=110;

int n,m;
int vis[N];
double g[N][N],d[N];
pair<int,int> a[N];
int st,ed;

void dijkstra() {
    for(int i=1;i<=n;i++){
        d[i]=1e18;
        vis[i]=0;
    }
    d[st]=0;
    for(int i=1;i<=n;i++){
        double mi=1e18;
        int xi=-1;
        for(int j=1;j<=n;j++){
            if(vis[j]==0&&d[j]<mi){
                xi=j;
                mi=d[j];
            }
        }
        vis[xi]=1;
        for(int j=1;j<=n;j++){
            if(vis[j]==0){
                if(g[xi][j]>0&&d[xi]+g[xi][j]<d[j]){
                    d[j]=d[xi]+g[xi][j];
                }
            }
        }
    }
}

signed main() {
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i].fi>>a[i].se;
    }
    cin>>m;
    for(int i=1;i<=m;i++){
        int u,v;cin>>u>>v;
        double x=sqrt( (a[u].fi-a[v].fi)*(a[u].fi-a[v].fi) + (a[u].se-a[v].se)*(a[u].se-a[v].se) );
        g[u][v]=x;
        g[v][u]=x;
    }
    cin>>st>>ed;
    dijkstra();
    printf("%.2f",d[ed]);
    return 0;
}

相关文章:

  • Selenium 元素定位方法详解
  • 在WSL中高效使用Windows目录下的Ollama模型
  • 如何在最新的 Mac mini M4 机器上,让 Ollama 支持局域网访问
  • 91%准确率预测耀斑!国家天文台推出太阳大模型“金乌”,推动天文研究进入AI时代
  • ngx_open_file
  • 通义万相环境搭建推理测试
  • 深度学习deeplearn1
  • Linux命令-sort
  • 如何申请p12证书
  • 【Kafka基础】解析Kafka核心特性:高吞吐、持久化与高可用架构
  • 关于终端安全管理系统在社会工作中的重要作用
  • FastAPI与ASGI深度整合实战指南
  • 使用Redis构架你自己的私有大模型
  • 嘎嘎棒,ethernet ip转profinet网关锁鲜食品加工业
  • 安装electron项目是为什么要执行postinstall script
  • Dubbo(30)如何配置Dubbo的服务分片?
  • linux0.11内核源码修仙传第十三章——进程调度大战前夕
  • AIO,BIO,NIO的区别(详解)
  • 盲盒小程序:数字娱乐新宠,开发需注重细节与创新
  • React面试常考内容【从宏观到微观】
  • 做批发各类新书的网站/哈尔滨seo关键词
  • h5如何做网站/英文外链seo兼职在哪里找
  • 阿里巴巴网站如何做免费推广/新乡网络推广外包
  • 域名空间有了怎么做网站/深圳全网推互联科技有限公司
  • 一键网站制作app/seo优化评论
  • 扬中话/宁波抖音seo搜索优化软件