首页 > 其他分享 >「AcWing学习记录」Dijkstra

「AcWing学习记录」Dijkstra

时间:2023-02-19 20:34:38浏览次数:52  
标签:dist 记录 int 原题 Dijkstra include AcWing

image

AcWing 849. Dijkstra求最短路 I

原题链接

朴素Dijkstra
1.dis[1] = 0, dis[i] = \(+\infty\)
2.for(int i = 0; i < n; i++)
s:当前已确定最短距离的点
t \(\leftarrow\) 不在s中的距离最近的点
s \(\leftarrow\) t
用t更新其他点的距离

#include<cstring>
#include<iostream>
#include<algorithm>

using namespace std;

const int N = 510;

int n, m;
int g[N][N];
int dist[N];
bool st[N];

int dijkstra()
{
    memset(dist, 0x3f, sizeof dist);
    dist[1] = 0;

    for(int i = 0; i < n; i++)
    {
        int t = -1;
        for(int j = 1; j <= n; j++)
            if(!st[j] && (t == -1 || dist[t] > dist[j]))
                t = j;

        st[t] = true;

        for(int j = 1; j <= n; j++)
            dist[j] = min(dist[j], dist[t] + g[t][j]);
    }

    if(dist[n] == 0x3f3f3f3f) return -1;
    return dist[n];
}

int main()
{
    scanf("%d%d", &n, &m);

    memset(g, 0x3f, sizeof g);

    while(m--)
    {
        int a, b, c;
        scanf("%d%d%d", &a, &b, &c);
        g[a][b] = min(g[a][b], c);
    }

    int t = dijkstra();

    printf("%d", t);

    return 0;
}

AcWing 850. Dijkstra求最短路 II

原题链接


标签:dist,记录,int,原题,Dijkstra,include,AcWing
From: https://www.cnblogs.com/YuukiAsuna/p/17114337.html

相关文章

  • SPI学习记录
    SPI学习记录场景采用Netty实现一个RPC框架,对于其中的服务发现机制,我们希望具有较强的扩展性,因此采用SPI机制来实现。首先定义一个SPI注解,所有带有SPI注解的类支持SPI机......
  • AcWing 372. 棋盘覆盖
    给n*n的方格图铺满1*2的长条,且某些位置不能铺,问最多能放多少个长条 #include<iostream>#include<queue>#include<vector>#include<cstring>usingnamespaces......
  • acwing 数组元素的目标和
    原题链接题解代码双指针#include"iostream"usingnamespacestd;constintN=100010;inta[N],b[N];intmain(){intn,m,x;cin>>n>>m>>x;for(i......
  • 实现输出100以内质数的两种方式-----笔试题记录
    质数指只能被1和自己本身相除的数,1不是质数一、方式一:用for循环嵌套循环实现思路:定义空列表,遍历2到100的整数,判断如果不能被1和该整数外的其他整数整除时,把整数写入......
  • JavaWeb开发过程中小问题记录
    今天想复习一下开学考试的内容上手做的时候很顺利的连接了数据库写了封装建立了servlet写了第一个add界面但是在servlet中却出现了问题具体如下图  而下方我在......
  • acwing 判断子序列
    原题链接题解分析使用双指针,o为数组1的指针,p为数组2的指针因为数组2要比数组1大,所以使p每次循环自增,当有相同值,使o自增,最后检查o是否已经遍历完毕即可代码#includ......
  • SQL216 统计各个部门的工资记录数
    题目描述有一个部门表departments,有一个,部门员工关系表dept_emp,有一个薪水表salaries,请你统计各个部门的工资记录数,给出部门编码dept_no、部门名称dept_name以及部门......
  • 寒假学习记录
    这个作业属于哪个课程<班级链接>这个作业要求在哪里 <作业要求>这个作业的目标<寒假学习记录>一、对寒假的回顾尚可的点:首先在完成了在结束六级一轮......
  • Hibernate 随机获取100条记录
    Hibernate执行的话效率太低,我数据库才3000条左右,就用了5秒时间。建议用jdbc执行finder=newFinder("").append("FROMEvent21ORDERBYRA......
  • ACwing 区间最大公约数题解 线段树(附证明)
    算进区间最大公因数单点线段树 https://www.acwing.com/problem/content/247/题目:给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:Clrd,表......