当前位置: 首页 > 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;
}
http://www.dtcms.com/a/110849.html

相关文章:

  • 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面试常考内容【从宏观到微观】
  • pyQt学习笔记——QThread线程
  • Linux——文件(2)文件系统
  • Kafka - 消息零丢失实战
  • 深度学习笔记 | 漫游RNN(循环神经网络)
  • 天梯赛 L2-024 部落
  • [ISP] 理解白平衡的理想色温6500K
  • springboot—— Shiro实现认证和授权功能
  • webscanner漏洞扫描部署使用
  • HTML 表单:构建交互式网页的关键元素
  • 3D 地图渲染-区域纹理图添加