我是靠谱客的博主 含蓄溪流,最近开发中收集的这篇文章主要介绍第十二届蓝桥杯 填空 路径 Dijkstra算法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入图片描述

#include<bits/stdc++.h>
#define ll long long
using namespace std;

const ll maxn = 2021 + 5;
const ll inf = 1e9;
vector<pair<int,ll>> a[maxn];
ll dist[maxn] , bk[maxn];
int main()
{
    ll n=2021;
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            if(abs(i-j)<=21){
                a[i].push_back(make_pair(j,i/__gcd(i,j)*j));
                a[j].push_back(make_pair(i,i/__gcd(i,j)*j));
            }
        }
    }
    for (int i = 1 ; i <= n ; i++)
        dist[i] = inf;
    dist[1]=0;
  
    for (int i = 1 ; i <= n ; i++){
        ll mi = inf;
        ll x;
        
        for (int j = 1 ; j <= n ; j++){
            if (bk[j] == 1) continue;
            if (mi > dist[j]){
                mi = dist[j];
                x = j;
            }
        }
        bk[x] = 1;
        for (auto g : a[x]){
            int v = g.first , w = g.second;
            dist[v] = min(dist[v] , dist[x] + w);
        }
    }
    cout<<dist[n];
    return 0;
}

最后

以上就是含蓄溪流为你收集整理的第十二届蓝桥杯 填空 路径 Dijkstra算法的全部内容,希望文章能够帮你解决第十二届蓝桥杯 填空 路径 Dijkstra算法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部