首页 > 其他分享 >byd锅

byd锅

时间:2024-05-23 22:30:48浏览次数:12  
标签:int inp maxn push NEW byd dis

\(Dijkstra\) 算法,记录最短路的路径。
保证 \(Dijkstra\) 没问题,锅在记录路径。
//NEW中夹的内容是记录路径的代码。

#include <bits/stdc++.h>
 
using namespace std;
 
struct Edge
{
    int v, w;
    // v --> to, w --> value
    friend bool operator<(const Edge &x, const Edge &y)
    {
        return x.w > y.w; 
    }
};
 
const int maxn = 1e5 + 5;
 
vector<Edge> e[maxn];
 
//NEW
stack<int> out;
int pre[maxn];
//NEW
 
priority_queue<Edge> q;
int dis[maxn], vis[maxn], n, m, s;
 
void dijkstra()
{
    dis[s] = 0;
    q.push({s, 0});
    while (!q.empty())
    {
        Edge inp = q.top();
        q.pop();
        int p = inp.v;
        int tot = e[p].size();
        if (vis[p])
            continue;
 
        vis[p] = 1;
        for (int j = 0; j < tot; j++)
        {
            int v = e[p][j].v;
            if (dis[v] > dis[p] + e[p][j].w)
            {
                dis[v] = dis[p] + e[p][j].w;
                if (!vis[v])
                {
                    q.push(Edge{v, dis[v]});
 
                    //NEW
                    pre[v] = p;
                    //NEW
 
                }
            }
        }
    }
    return;
}
 
int main()
{
    cin >> n >> m;
    s = 1;
    for (int i = 1; i <= n; i++)
    {
        dis[i] = 2147483647;
 
        //NEW
        pre[i] = -1;
        //NEW
 
    }
 
    for (int i = 1; i <= m; i++)
    {
        int x, y, w;
        cin >> x >> y >> w;
        Edge inp;
        inp.v = y, inp.w = w;
        e[x].push_back({y, w});
        e[y].push_back({x, w});
    }
 
    dijkstra();
 
 
    //NEW
    for (int i = n; i != -1; i = pre[i])
    {
        out.push(i);
    }
 
    int flag = 0;
    while (!out.empty())
    {
        cout << out.top() << ' ';
        out.pop();
        flag = 1;
    }
    if(flag == 0)
        cout << -1 << ' ';
    //NEW
 
    return 0;
}

标签:int,inp,maxn,push,NEW,byd,dis
From: https://www.cnblogs.com/qianxiquq/p/18209495

相关文章

  • 0x00 BabyDjango,启动
    0x00BabyDjango,启动新建项目此处我使用之前的解释器(主要是不想再从0到×再安装一些包,难受...)原先解释器中得先装好Django第三方库新建项目初始目录如下启动在终端中,指定地址和端口进行运行pythonmanage.pyrunserverip:portDjango项目结构说明一个常规目录......
  • package com.ws.byd.bmgl.bmzdpz:编码字典------bydobject
    controller:packagecom.ws.byd.bmgl.bmzdpz.controller;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.commons.lang.O......
  • log4j.properties内容解析-------bydobject
    #ThisistheconfiguringforloggingdisplayedintheApplicationServer // 这是显示在应用程序服务器中的日志记录配置log4j.rootCategory=debug,stdout,logfile//stdout(自定义appenderName)/logfile(自定义appenderName) ---appenderName就是指......
  • 什么是 SAP Business ByDesign 里的 TREX
    TREX(TextRetrievalandInformationExtraction)在SAPBusinessByDesign中是一个强大的搜索和分析引擎,专门用于处理大量的结构化和非结构化数据。它是SAP的全文搜索引擎,提供高效的文本搜索、信息提取和分析功能。TREX的应用范围广泛,下面将详细说明其在SAPBusinessByD......
  • BYD L3用车知识
    1、无钥匙进入主副驾门把手两个橡皮开关,后备箱镀铬装饰条上橡皮开关,当感应钥匙在车辆1米范围内,这三处开关可以实现一键解锁车辆 2、无钥匙启动当感应钥匙在1米范围......
  • ctf.bobbydylan python解密
    str="1234567890abcdef"iArr=[0]*16iArr[0]=0iArr[12]=14iArr[10]=7iArr[14]=15iArr[15]=42try:iArr[1]=3iArr[5]=5except:iA......