蓝桥杯刷题冲刺 | 倒计时2天

这篇具有很好参考价值的文章主要介绍了蓝桥杯刷题冲刺 | 倒计时2天。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:指针不指南吗
专栏:蓝桥杯倒计时冲刺

🐾马上就要蓝桥杯了,最后的这几天尤为重要,不可懈怠哦🐾

1.Floyd求最短路

  • 题目

    链接: 854. Floyd求最短路 - AcWing题库

    给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,边权可能为负数。

    再给定 k 个询问,每个询问包含两个整数 x 和 y,表示查询从点 x 到点 y 的最短距离,如果路径不存在,则输出 impossible

    数据保证图中不存在负权回路。

    输入格式

    第一行包含三个整数 n,m,k。

    接下来 m 行,每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。

    接下来 k 行,每行包含两个整数 x,y,表示询问点 x 到点 y 的最短距离。

    输出格式

    共 k 行,每行输出一个整数,表示询问的结果,若询问两点间不存在路径,则输出 impossible

    数据范围

    1≤n≤200,
    1≤k≤ n 2 n^2 n2 ,
    1≤m≤20000,
    图中涉及边长绝对值均不超过 10000。

  • 第一次 AC 100%

    #include<bits/stdc++.h>
    using namespace std;
    
    const int N=210;
    const int INF=1e9;
    
    int n,m,k;
    int g[N][N];
    
    void floyd()
    {
        for(int k=1;k<=n;k++)
            for(int i=1;i<=n;i++)
                for(int j=1;j<=n;j++)
                    g[i][j]=min(g[i][j],g[i][k]+g[k][j]);
    }
    
    int main()
    {
        scanf("%d%d%d",&n,&m,&k);
        
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                if(i==j) g[i][j]=0;
                else g[i][j]=INF;
        
        int a,b,c;    
        while(m--)
        {
            scanf("%d%d%d",&a,&b,&c);
            g[a][b]=min(c,g[a][b]);
        }
        
        floyd();
        
        while(k--)
        {
            int x,y;
            scanf("%d%d",&x,&y);
            if(g[x][y]>=INF/2)  
                puts("impossible");
            else cout<<g[x][y]<<endl;
        }
        
        return 0;
    }
    

2.Dijkstra求最短路(堆优化版)

  • 题目

    链接: 850. Dijkstra求最短路 II - AcWing题库

    给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为非负值。

    请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1。

    输入格式

    第一行包含整数 n 和 m。

    接下来 m 行每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。

    输出格式

    输出一个整数,表示 1 号点到 n 号点的最短距离。

    如果路径不存在,则输出 −1。

    数据范围

    1≤n,m≤1.5× 1 0 5 10^5 105 ,
    图中涉及边长均不小于 0,且不超过 10000。
    数据保证:如果最短路存在,则最短路的长度不超过 1 0 9 10^9 109

    输入样例:

    3 3
    1 2 2
    2 3 1
    1 3 4
    

    输出样例:

    3
    
  • 第一次 AC 100%

    #include<bits/stdc++.h>
    using namespace std;
    
    typedef pair<int,int> PII;
    
    const int N=1.5*1e5+10;
    
    int n,m;
    int h[N],w[N],ne[N],e[N],idx;
    int dist[N];
    bool st[N];
    
    void add(int a,int b,int c)
    {
        e[idx]=b,w[idx]=c,ne[idx]=h[a],h[a]=idx++;
    }
    
    int dijkstra()
    {
        memset(dist,0x3f,sizeof dist);
        dist[1]=0;
        
        priority_queue<PII,vector<PII>,greater<PII>> heap;
        heap.push({0,1});
        
        while(heap.size())
        {
            auto t=heap.top();
            heap.pop();
            
            int ver=t.second,distance=t.first;
            
            if(st[ver]) continue;
            
            st[ver]=1;
            
            for(int i=h[ver];i!=-1;i=ne[i])
            {
                int j=e[i];
                if(dist[j]>distance+w[i])
                {
                    dist[j]=distance+w[i];
                    heap.push({dist[j],j});
                }
            }
        }
        
        if(dist[n]==0x3f3f3f3f)  return -1;
        return dist[n];
    }
    
    int main()
    {
        scanf("%d%d",&n,&m);
        
        memset(h,-1,sizeof h);
        
        while(m--)
        {
            int a,b,c;
            scanf("%d%d%d",&a,&b,&c);
            add(a,b,c);
        }
        
        int t=dijkstra();
        
        cout<<t;
        
        return 0;
    }
    

蓝桥杯刷题冲刺 | 倒计时2天文章来源地址https://www.toymoban.com/news/detail-409063.html

到了这里,关于蓝桥杯刷题冲刺 | 倒计时2天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【蓝桥杯刷题冲刺辅导】掌握递归·DFS解题套路,这一文足以?

    【蓝桥杯刷题冲刺辅导】掌握递归·DFS解题套路,这一文足以?

    大家好,我是安然无虞。 目录 一、刷题前和铁汁们唠一唠 1.刷题前须知 2.刷题时套路 1套路 2背下列常用数 ​ 3投机取巧:根据数据范围确定算法 ​ 4珍惜每分每秒 · 直接复制粘贴  5输入输出函数的使用 二、刷题强化 例一:递归实现指数型枚举 例二:递归实现排列型枚举

    2023年04月10日
    浏览(14)
  • 【蓝桥模板】——考试倒计时3天,你和省一就差这最后10分了(差分模板)

    【蓝桥模板】——考试倒计时3天,你和省一就差这最后10分了(差分模板)

    全文目录🧭 🎁差分模板 🌲差分-树木上药 🚀传送锚点  💡思路点拨 🍞代码详解    🎄差分-小明的彩灯 🚀传送锚点​  💡思路点拨 🍞代码详解  差分三部曲=差分相减+转换加减+前缀相加 参考资料:原理解释 样例解释 老规矩,先来一道差集的经典例题「 树木上药 」

    2024年01月20日
    浏览(34)
  • 51单片机实现倒计时,按键控制倒计时

    51单片机实现倒计时,按键控制倒计时

    基于AT89C52的答辩倒计时。四个按键分别控制倒计时开始,暂停,时间加和减。剩下30S时蜂鸣器响,倒计时结束蜂鸣器响。  

    2024年02月07日
    浏览(7)
  • Flutter实现倒计时功能,秒数转时分秒,然后倒计时

    Flutter实现倒计时功能,秒数转时分秒,然后倒计时

    Flutter实现倒计时功能 发布时间:2023/05/12 本文实例为大家分享了Flutter实现倒计时功能的具体代码,供大家参考,具体内容如下 有一个需求,需要在页面进行显示倒计时,倒计时结束后,做相应的逻辑处理。 实现思路:在Flutter中,Timer.periodic提供了循环功能,查看函数定义:

    2024年02月13日
    浏览(12)
  • 51单片机通过计时器实现倒计时

    51单片机通过计时器实现倒计时

    软件 : Keil5+Proteus7 元件 : AT89C51 * 1,7SEG-MPX2-CA * 1

    2024年02月16日
    浏览(43)
  • jquery 实现倒计时

    $(\\\".tableText\\\").click(function () {     var time = 60;     var timer = setInterval(function(){         time--;         $(\\\".tableText\\\").text(\\\"(\\\"+time+\\\"秒)重发\\\");         if(time==0){             clearInterval(timer);             $(\\\".tableText\\\").text(\\\"获取验证码\\\");         }     },1000); });

    2024年04月14日
    浏览(8)
  • 倒计时动效

    倒计时动效

    1. 效果 2. html 3. css

    2024年02月11日
    浏览(9)
  • 倒计时 天时分秒

    2024年02月07日
    浏览(7)
  • 倒计时57天

    3-1知识点续: 5. 6. 复习3-2:习题篇: 倒计时68天-CSDN博客 1. 2. 待续,,,

    2024年02月20日
    浏览(5)
  • [Unity]Lua本地时间、倒计时和正计时。

    惯例,直接上代码:

    2024年02月12日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包