题解 | #【模板】单源最短路2#

【模板】单源最短路2

https://www.nowcoder.com/practice/7c1740c3d4ba4b3486df4847ee6e8fc7

#include<iostream>
#include<climits> // 使用INT_MAX所需要引入的头文件
using namespace std;
int main()
{
    const int N = 5000; // 注意题干,图的点数是固定值5000
    int G[N + 1][N + 1]; // 用于模拟邻接矩阵进行建图
    for(int i = 1; i <= N; i++)
    {
        for(int j = 1; j <= N; j++)
        {
            G[i][j] = INT_MAX; // 先将邻接矩阵全部初始化为无穷大
        }
    }
    int n, m;
    cin>>n>>m;
    int u, v, w;
    for(int i = 1; i <= m; i++)
    {
        cin>>u>>v>>w;
        G[u][v] = w;
        G[v][u] = w; // 注意为无向图,需要关于主对角线对称,因此两边都需要存储
    }
    int dist[N + 1]; // 用于存储每个顶点当前与源点的最短距离
    bool flag[N + 1]; // 用于记录每个顶点是否已经完成与源点最短距离的计算处理
    for(int i = 1; i <= N; i++)
    {
        dist[i] = G[1][i]; // 初始设置为邻接矩阵中源点所在 行 的权值
        flag[i] = false;
    }
    dist[1] = 0;
    flag[1] = true; // 将源点加入已处理集合
    for(int i = 2; i <= N; i++)
    {
        int tmp = INT_MAX, index = 1;
        for(int j = 1; j <= N; j++) // 遍历寻找与源点的最短距离
        {
            if(flag[j] == false && dist[j] < tmp)
            {
                tmp = dist[j];
                index = j;
            }
        }
        if(index != 1)
        {
            flag[index] = true; // 找到后将其加入已处理集合
        }
        for(int j = 1; j <= N; j++)
        {
            if(flag[j] == false && G[index][j] != INT_MAX)
            {
                if(G[index][j] + dist[index] < dist[j])
                {
                    dist[j] = G[index][j] + dist[index]; // 新的距离比原距离更短,则进行更新
                }
            }
        }
    }
    if(dist[n] != INT_MAX)
    {
        cout<<dist[n];
    }
    else // 没有从源点到达该顶点的边
    {
        cout<<-1;
    }
    return 0;
}

全部评论

相关推荐

Ryan188:我觉得你简历最核心的问题就是太大众化。 你要有一个认知就是,如果你是面试官,你是HR,其实他们每天都会收到非常多大量重复的像你这种简历。 就是说你的项目不是一个真实的上线的项目,可能是从网上学习而来的,或者是直接copy别人的项目,没有新意,没有展现出你自己对技术的思考,而且你的学历也不占优,自然而然就很难有人去选择你。 所以要做的实际上是差异化方向的工作,也就是“给我一个选择你的理由”,比如最近很火的ai,你可以写一个ai相关项目比如问答应用或者mcp编写或者agent搭建,需要你先花点时间学习,34天吧,展现你对这方面相较于其他人特有的思考; 或者写相关技术博客输出一些技术内容,有具体可以量化的成果等等去增加你的竞争力。 但以上这些都是后话,我去年在你这个时候也是没人理我,咱们双非学历也没实习,难找也正常,我当时整个3月份都没人鸟我,直到有个新招的岗位,很缺人很急,流程很快,所以我一下子进去了,所以运气方面也很重要,需要你一直坚持喝复盘,直到看到光明,加油兄弟
简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务