分层最短路模板_路网数据 ch 分层搜索 数据处理-程序员宅基地

#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
#define ll long long
#define pi pair<int,int>
const int maxn=1e4+9;
int d[maxn][11],cnt,k,head[maxn];
struct Edge{
    int val,to,next;
}edge[maxn*10];
void init(){
    memset(head,-1,sizeof(head));
    cnt=0;
}
struct node{
    int dist,pt,pile;
    node(int dist,int pt,int pile):dist(dist),pt(pt),pile(pile){}
    bool operator < (const node &a)const{
        if(dist==a.dist)return pile >a.pile;
        return dist>a.dist;
    }
};
void add(int u,int v,int val){
    edge[cnt].next=head[u];
    edge[cnt].val=val;
    edge[cnt].to=v;
    head[u]=cnt++;
}
int djk(int s){
    memset(d,inf,sizeof(d));
    d[s][0]=0;
    priority_queue<node>q;
    q.push(node(0,s,0));
    while(!q.empty()){
        node nd=q.top();;
        int u=nd.pt;
        q.pop();
        int j=nd.pile;
        for(int i=head[u];i!=-1;i=edge[i].next){
            int v=edge[i].to;
            int w=edge[i].val;
            if(d[v][j]>d[u][j]+w){
                d[v][j]=d[u][j]+w;
                q.push({d[v][j],v,j});
            }
            if(j+1<=k&&d[v][j+1]>d[u][j]){
                d[v][j+1]=d[u][j];
                q.push({d[v][j+1],v,j+1});
            }
        }
    }
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    init();
    int i,j,n,m,s,t;
    cin>>n>>m>>k>>s>>t;
    while(m--){
        int x,y,z;
        cin>>x>>y>>z;
        add(x,y,z);add(y,x,z);
    }
    djk(s);
    int ans=inf;
    for(i=0;i<=k;i++)ans=min(ans,d[t][i]);
    cout<<ans<<endl;
}

https://ac.nowcoder.com/acm/contest/884/J

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

智能推荐

linux loadavg详解(top cpu load)-程序员宅基地

文章浏览阅读241次。目录[隐藏]1Loadavg分析1.1Loadavg浅述1.2Loadavg读取1.3Loadavg和进程之间的关系1.4Loadavg采样218内核计算loadavg存在的问题2.1xtime_lock解析2.2全局load读写分离解xtime_lock问题2.3几个关键点:2..._$load_avg_per_cpu.max.warn

【数据结构初阶】八大排序(二)——快速排序&&冒泡排序-程序员宅基地

文章浏览阅读1.2k次,点赞53次,收藏39次。快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序时间复杂度:O(N*logN)空间复杂度:O(logN)稳定性:不稳定。

githubDesktop的使用说明(附下载链接)_下载了githubdesktop-程序员宅基地

文章浏览阅读1.3k次。step1 :下载百度云链接https://pan.baidu.com/s/1luAFF8gGddWFqgbq-_X0cg提取码: 5xdj包含 git github forwindows githubforMac 以及notepad++step2:安装这个安装程序,是强制安装路径的,所以不要乱搞 下载之后直接点击就行。@基本情况就是这样..._下载了githubdesktop

初探Java Nashorn脚本引擎-程序员宅基地

文章浏览阅读4.7k次。要想让一个程序功能变得灵活起来,那么配置绝对是不可或缺的,通过合理的设计,将所有动态变量都配置化,可以最大程度上让程序变得灵活。可是在某些复杂的业务场景中,仅仅只是变量的配置化,往往还并不能满足需求,尤其是互联网这种业务需要快速更迭的行业。于是,做一个这样的功能:仅仅依靠配置,就能让程序的逻辑cover住所有的业务逻辑变化,就成为了程序员的终极梦想。然而,现实是残酷的,"write once run forevre",这几乎是不可能实现的梦想(如果真的出现了这样的技术,那可能会是我们职业生涯将要面对的最_nashorn

【CTF】用python PIL将RGB值转化为图片_ctf 三个坐标值转换图像-程序员宅基地

文章浏览阅读1.5w次,点赞4次,收藏28次。一道关于ctf的题,用python将rgb值转化为图片_ctf 三个坐标值转换图像

海思HI35xx平台软件开发快速入门之背景知识-程序员宅基地

文章浏览阅读1.4k次。前言: 安防领域最近几年可谓暗流涌动,作为安防业的双寡头,大华股份与海康威视凭借行业的东风,两家公司的成长速度异常强劲,在国际市场上已经和应用厂家进行厮杀。 2015年两家公司双双晋升“全球安放50强”,海康排名第二,大华排名第五。以华为海思为代表国产芯片解决方案不断走强,在国际竞争中优势凸显,在后端NVR高端产品线先后推出了海思3531、海思3535、海思3536,同时针对低端的产品线也不..._海思hi35xx平台软件开发快速入门之背景知识

随便推点

什么是OTL-程序员宅基地

文章浏览阅读1.9k次。OTL是英文Output Transformer Less 的简写,意思是无输出变压器。OTL功率放大器就是没有输出耦合变压器的功率放大器电路。 OTL功率放大器大多数采用互补推挽输出级电路。如图所示为互补对称式OTL功率放大电路。T2为一只NPN型功率晶体管,T3为一只PNP型晶体管,它们组成互补推挽输出管,T1为电压放大激励管。信号经过C1耦合送入T1进行放大后,从T1集电极产生的信号_otl

CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage问题的解决-程序员宅基地

文章浏览阅读2w次。参考博客:https://blog.csdn.net/qq_36630050/article/details/80708685 android studio出错提示:Build command failed.Error while executing 'E:\Android\SDK\cmake\3.6.4111459\bin\cmake.exe' with arguments..._cmake error: cmake_c_compiler not set, after enablelanguage cmake error: cma

LSB-tree理论证明理解_lsb tree-程序员宅基地

文章浏览阅读285次。一些基本公式和定义(1,c,p1,p2)(1,c,p1,p2)(1,c,p_1,p_2)敏感含义‖,‖≤r,Pr[]≥p1‖,‖≤r,Pr[]≥p1\|,\| \leq r, Pr[] \geq p_1, ‖,‖&gt;cr,Pr[]≤p2‖,‖&gt;cr,Pr[]≤p2\|,\| > cr, Pr[] \leq p_2基本LSH函数h(o)=⌊a⋅o+bw⌋h(o)=⌊a..._lsb tree

mathtype插入在WPS中出现The MathType DLL cannot be found问题_mathtype不能被发现-程序员宅基地

文章浏览阅读2k次。mathtype插入在WPS中出现The MathType DLL cannot be found问题_mathtype不能被发现

Lc.exe已退出代码为-1问题解决⽅法_lc.exe已退出 代码为-1-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏3次。对于⽤vs作为开发⼯具的同学来说,可能常常会碰到“Lc.exe已退出代码为-1”的问题,造成这个结果的⼀般是因为加⼊了第三⽅的插件程序造成的,今天记录下如何解决。查看加载的程序项⽬,找到Properties⽂件夹licenses.licx⽂件,然后右键选择删除就可以了,调试运⾏正常了。可以使⽤⽂本编辑器打开上述⽂件,也可以使⽤其它的编辑器,在⽂件中查找licenses.licx字样,删除对应节点。找到你系统的*.csproj⽂件,这个⽂件是加载项⽬⽂件。c.exe已退出代码为-1问题解决⽅法。_lc.exe已退出 代码为-1

linux系统忘记登录密码怎么办_linux忘记密码-程序员宅基地

文章浏览阅读6.4k次,点赞7次,收藏29次。【代码】linux系统忘记登录密码怎么办。_linux忘记密码

推荐文章

热门文章

相关标签