迪杰特斯拉算法+堆优化_Chillstepp的博客-程序员宅基地

技术标签: 堆优化  算法  迪杰特斯拉算法  板子  

/*
O(eloge)堆优化dj算法,在n的数量级>=1e5时必须采用这种堆优化+邻接表方式
*/

struct node{
    
    int p, w;
    node(int a, int b):p(a), w(b){
    }
    bool operator< (const node& b) const
    {
    
        return w > b.w;
    }
};
vector<node> g[N];
priority_queue<node> sup;
void dijkstra(int start)
{
    
    memset(dis, 0x3f, sizeof(dis));
    dis[start] = 0; pre[start] = start;
    sup.push(node(start, 0));
    while (!sup.empty())
    {
    
        node front = sup.top();
        sup.pop();  int tempv = front.p;
        if (visit[tempv]) continue;
        visit[tempv] = true;
        for (int i = 0; i < g[tempv].size(); i++)
        {
    
            int p = g[tempv][i].p;
            if (!visit[p] && dis[tempv]+g[tempv][i].w < dis[p])
            {
    
                dis[p] = dis[tempv]+g[tempv][i].w;
                pre[p] = tempv;
                sup.push(node(p, dis[p]));
            }
        }
    }
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43553133/article/details/90273722

智能推荐

android开发步步为营之69:Activity通过设置Theme模拟对话框效果-程序员宅基地

对话框应该说是手机app中最常见的和用户进行交互的方式了,之前也总结过一下,主要通过popupwindow,dialog,windowmanger来实现,本文详细介绍一下如何通过Activity实现弹出对话框效果。 来先看下效果,有个感性的认识。 中间那个提示其实是一个activity,好的,下面开始一步步实现这个神奇的效果。

java正则表达式匹配小括号内的内容_java正则匹配括号内的内容-程序员宅基地

经常用到正则匹配小括号内容,在此摘录下来String content = "src: local('Open Sans Light'), local('OpenSans-Light'), url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTa-j2U0lmluP9RWlSytm3ho.woff2) format('..._java正则匹配括号内的内容

渗透测试以及安全面试的经验之谈-技术篇-程序员宅基地

技术面试问题CTF说一个印象深刻的CTF的题目Padding Oracle->CBC->密码学(RSA/AES/DSA/SM)CRC32反序列化漏洞sql二次注入第一次进行数据库插入数据的时候,仅仅只是使用了 addslashes 或者是借助 get_magic_quotes_gpc 对其中的特殊字符进行了转义,在写入数据库的时候还是保留了原来的数据,但是数据本身还是..._渗透测试工程师 知乎

老款诺基亚6 android 8,迅速吃上奥利奥:诺基亚7与新诺基亚6推送Android 8.0_Shi Max的博客-程序员宅基地

今天,诺基亚手机官方宣布,刚刚发布的新款诺基亚6手机以及诺基亚7正式更新Android Oreo 8.0系统!此次的更新,会带来速度上全面的提升,相较Android 7更简洁,更流畅,加入新一代的后台管理机制,在功耗电量方面可以做到更好。除了底层的大更新外,还加入手势操作,熄屏提示,包括每月安全更新等等。另外,2017年的诺基亚6的Android 8.0更新很快会到。毕竟,HMD此前承诺,旗下发布..._诺基亚6刷8.0

ios项目内嵌入百度地图导航实现-程序员宅基地

ios百度地图基础导航实现-比官网更加详细通俗易懂ios百度地图基础导航实现-比官网更加详细通俗易懂准备工作到百度地图API官网申请AK以及下载SDK第一步将下载的SDK中的文件拷贝到新建工程之下第二步将SDK和Framework添加进工程第三步修改Build Settings设置项第四步配置plist文件第五步进入正题-发起导航尾声以上仔细跟随下来就能实现啦贴一张效果图准备工作:到百

linux 实时监控系统IO状态和IO性能_linuxio的预警-程序员宅基地

Snippet:2021-3-5 9:33linux 实时监控系统IO状态和IO性能问题概述:linux 实时监控系统IO状态和IO性能方案细节 bash> iostat -c -k -p ALL help> - c 仅显示CPU统计信息.与-d选项互斥. - d 仅显示磁盘统计信息.与-c选项互斥. - k 以K为单位显示每秒的磁盘请求数,默认单位块. - p device | ALL ._linuxio的预警

随便推点

数字化转型进入拐点,华为云赋能云加码数字转型-程序员宅基地

见证新基建时代千行百业数字化转型浪潮。

Windows10系统快捷键创建一个新的虚拟桌面-程序员宅基地

Win键+Ctrl+D:创建一个新的虚拟桌面Win键+Ctrl+F4:关闭虚拟桌面Win键+Ctrl+左/右:切换虚拟桌面

元数据管理的未来趋势——企业级元数据管理(EMM)-程序员宅基地

经过这些年的发展,国内外厂商在元数据管理能力的建设上有了一定的经验积累,此篇文章分析了国内外市场现状,指出企业级元数据管理正吸引着越来越多的厂商关注,有望成为未来元数据管理的主流方向,提出了企业级元数据管理需要具备的基本能力,并在最后简要分析了未来企业级元数据管理体系架构的技术趋势。企业级元数据管理将成为企业信息管理的核心*国内外对企业级元数据管理的需求日益增加仔细分析国内外现状,目前市场上对企业...

编写函数:unsigned int reverse_bit(unsigned int value);  这个函数的返回值是value的二进制位模式从左到右翻转后的值。_unsignedintvalue-程序员宅基地

问题描述:编写函数:unsigned int reverse_bit(unsigned int value);这个函数的返回值是value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000..._unsignedintvalue

JAVA架构设计-接口和抽象类的选择_java 通过抽象类和接口类进行架构设计-程序员宅基地

先来说说接口和抽象类的设计理念:接口:强调的是扩展性抽象:强调的是共性功能两者的详细对比如下:对比 抽象类 接口 默认的方法实现 它可以有默认的方法实现 接口完全是抽象的。它根本不存在方法的实现 实现 子类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方法的实现。 子类使用关键字implements来实现接口。它需要提供接口中所有声明的方法的实现 构造器 抽象类可以有构造器 接口不能有构造_java 通过抽象类和接口类进行架构设计

Java序列化机制——protoStuff_java protostuff-程序员宅基地

Java的序列化是在文件传输中必不可少的一部分。常用的Java序列化机制有Java默认的序列化机制,谷歌的protobuf等。而Java默认的序列化机制效率太低,protobuf要写protostuff文件,又很麻烦,所以我这篇文章要介绍的就是——protostuff.1、protostuff简介在序列化文件不超过10M的时候最好还是使用Java自带的序列化机制。文件较大的时候用protost..._java protostuff