首页 > 编程语言 >算法竞赛模板整理

算法竞赛模板整理

时间:2023-12-10 14:35:24浏览次数:33  
标签:竞赛 int SPFA vis 算法 vector assign 模板 dis

图论

最短路

struct SPFA {
    vector<i64> dis;
    vector<bool> vis;
    vector<int> from;
    int n;
    SPFA(vector<vector<pair<int, i64>>> &g, int s) : n(g.size()) {
        dis.assign(n, INF), vis.assign(n, false), from.assign(n, -1);

        priority_queue<pair<i64, int>, vector<pair<i64, int>>, greater<pair<i64, int>>> q;
        q.push({0, s}), dis[s] = 0;
        while (!q.empty()) {
            auto [d, u] = q.top();
            q.pop();
            if (vis[u]) continue;
            vis[u] = true;
            for (auto &[v, w] : g[u]) {
                if (dis[v] > dis[u] + w) {
                    dis[v] = dis[u] + w;
                    from[v] = u;
                    q.push({dis[v], v});
                }
            }
        }
    }
};

标签:竞赛,int,SPFA,vis,算法,vector,assign,模板,dis
From: https://www.cnblogs.com/syrreblum/p/17892609.html

相关文章

  • 学C笔记归纳 第十篇——循环算法优化
    练习1:求1!+2!+...+10!一般算法:双层循环,外层1~10,内层计算每个数的阶乘,在外层把阶乘相加。intmain(){inti=0;intj=0;intjc=1;intsum=0;for(i=1;i<=10;i++){jc=1;//for(j=1;j<=i;j++){......
  • python算法
    目录: 回溯算法:  回溯算法:一般模型:results=[]defbacktrack(路径,选择列表):passif路径结束,满足约束条件:results.append(路径)#保存结果return#注意,返回到上一个分支,而不是返回结果,退出回溯if路径结束,不满足约束条件:......
  • 人工智能基础 - 机器学习算法分类
    监督学习在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中“垃圾邮件”“非垃圾邮件”,对手写数字识别中的“1“,”2“,”3“,”4“等。在建立预测模型的时候,监督式学习建立一个学习过程,将预测结果与“训练数据”的实际结果进行比较,不......
  • .net中加解密用BouncyCastle就够了,支持常用的各种加密解密算法
    BouncyCastle是一个流行的Java加解密库,也支持在.NET平台上使用。下面是BouncyCastle在.NET下使用的一些常见功能,包括AES、RSA、MD5、SHA1、DES、SHA256、SHA384、SHA512等。在开始之前,请确保你已经将BouncyCastle的NuGet包安装到你的项目中。你可以通过NuGet......
  • 深度解读DBSCAN聚类算法:技术与实战全解析
    探索DBSCAN算法的内涵与应用,本文详述其理论基础、关键参数、实战案例及最佳实践,揭示如何有效利用DBSCAN处理复杂数据集,突破传统聚类限制。关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里......
  • Java之包装类的算法小题的练习
     算法小题练习一:需求:键盘录入一些1~10日之间的整数,并添加到集合中。直到集合中所有数据和超过200为止。代码示例:publicclassTest1{publicstaticvoidmain(String[]args){/*键盘录入一些1~10日之间的整数,并添加到集合中。直到集合中所有数据和超......
  • 贪心算法
    1.贪心算法1.电台覆盖区域求最优解问题题目:假设存在如下表的需要付费的广播台,以及广播台信号可以覆盖的地区。如何选择最少的广播台,让所有的地区都可以接收到信号广播台覆盖地区K1“北京”,“上海”,“天津”K2“广州”,“北京”,“深圳”K3“成都”,......
  • 代码随想录算法训练营第7天 | lc344、lc541、卡码54、lc151、卡码55
    (本合集全部为Go语言实现)相关文章链接:344题解541题解卡码54题解151题解卡码55题解相关视频链接:Leetcode344状态:秒了实现过程中的难点:对撞双指针个人写法funcreverseString(s[]byte){fori,j:=0,len(s)-1;i<j;i,j=i+1,j-1{s[i],s[j]......
  • 线段树模板区间加(含懒标记)
    constintN=1e5+10;intn,m;inta[N];structTree{ intl,r; llsum,add; }tr[4*N];voidbuild(intu,intl,intr){ //l=tr[u].l;r=tr[u].r; //注释掉的部分是典型的错误,对于build过程中我们是初始化编号对应区间节点,上面赋值逻辑反了 tr[u]={l,r}; if(l==r)t......
  • 基于PSD-ML算法的语音增强算法matlab仿真
    1.算法运行效果图预览   2.算法运行软件版本matlab2022A 3.算法理论概述      PSD-ML(PowerSpectralDensityMaximumLikelihood)算法是一种基于最大似然估计的语音增强算法,通过对语音信号的功率谱密度进行估计,并利用估计结果对原始语音信号进行滤波处理,以达......