#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=1e5+;
const ll inf=1e17;
struct node
{
ll dis;
int num,pos;
node() {}
node(ll dis,int num,int pos):dis(dis),num(num),pos(pos) {}
bool operator< (const node& a)const
{
return dis>a.dis;
}
};
struct edge
{
int to,next;
ll z;
} e[maxn*];//双边,无向图,所以乘以2
int head[maxn],cnt;
void add(int x,int y,ll w)// w边值
{
e[cnt].to=y;
e[cnt].z=w;
e[cnt].next=head[x];
head[x]=cnt++;
}
ll dist[maxn][],vis[maxn][]; int n,m,k;
void dijkstra()
{
priority_queue<node>Q;//优先队列
Q.push(node(,,));
while(!Q.empty())
{
node v=Q.top();
Q.pop();
if(vis[v.pos][v.num])
continue;
vis[v.pos][v.num]=;
for(int i=head[v.pos]; ~i; i=e[i].next)
{
int ne=e[i].to;
if(dist[ne][v.num]>v.dis+e[i].z)
{
dist[ne][v.num]=v.dis+e[i].z;
Q.push(node(dist[ne][v.num],v.num,ne));
}
if(v.num<k && v.dis<dist[ne][v.num+])
{
dist[ne][v.num+]=v.dis;
Q.push(node(v.dis,v.num+,ne));
}
}
}
}
void init()//初始化图,有点之间距离为无穷,每个点的标志初始为0,边的条数cnt初始为0
{
for(int i=; i<maxn; i++)
{
head[i]=-;
for(int j=; j<=; j++)
dist[i][j]=inf,vis[i][j]=;
}
cnt=;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d",&n,&m,&k);
int x,y;
ll z;
init();
for(int i=; i<=m; i++)
{
scanf("%d%d%lld",&x,&y,&z);
add(x,y,z);
}
dist[][]=;
dijkstra();
ll ans=inf;
for(int i=; i<=k; i++)
ans=min(ans,dist[n][i]);
printf("%lld\n",ans); }
return ;
}

参看原博客:https://blog.csdn.net/tianyizhicheng/article/month/2018/09

Dijkstra+优先队列 模板的更多相关文章

  1. (模板)poj2387(dijkstra+优先队列优化模板题)

    题目链接:https://vjudge.net/problem/POJ-2387 题意:给n个点(<=1000),m条边(<=2000),求结点n到结点1的最短路. 思路:dijkstra ...

  2. 地铁 Dijkstra(优先队列优化) 湖南省第12届省赛

    传送门:地铁 思路:拆点,最短路:拆点比较复杂,所以对边进行最短路,spfa会tle,所以改用Dijkstra(优先队列优化) 模板 /******************************** ...

  3. POJ 1511 - Invitation Cards (dijkstra优先队列)

    题目链接:http://poj.org/problem?id=1511 就是求从起点到其他点的最短距离加上其他点到起点的最短距离的和 , 注意路是单向的. 因为点和边很多, 所以用dijkstra优先 ...

  4. 最短路径---dijkstra算法模板

    dijkstra算法模板 http://acm.hdu.edu.cn/showproblem.php?pid=1874 #include<stdio.h> #include<stri ...

  5. 【bzo1579】拆点+dijkstra优先队列优化+其他优化

    题意: n个点,m条边,问从1走到n的最短路,其中有K次机会可以让一条路的权值变成0.1≤N≤10000;1≤M≤500000;1≤K≤20 题解: 拆点,一个点拆成K个,分别表示到了这个点时还有多少 ...

  6. 【poj 1724】 ROADS 最短路(dijkstra+优先队列)

    ROADS Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12436 Accepted: 4591 Description N ...

  7. POJ-数据结构-优先队列模板

    优先队列模板 优先队列是用堆实现的,所以优先队列中的push().pop()操作的时间复杂度都是O(nlogn). 优先队列的初始化需要三个参数,元素类型.容器类型.比较算子. 需要熟悉的优先队列操作 ...

  8. 图的最短路径算法Dijkstra算法模板

    Dijkstra算法:伪代码 //G为图,一般设为全局变量,数组d[u]为原点到达个点的额最短路径, s为起点 Dijkstra(G, d[u], s){ 初始化: for (循环n次){ u = 是 ...

  9. poj 1511-- Invitation Cards (dijkstra+优先队列)

    刚开始想复杂了,一直做不出来,,,其实就是两遍dijkstra+优先队列(其实就是板子题,只要能有个好的板子,剩下的都不是事),做出来感觉好简单...... 题意:有n个车站和n个志愿者,早上每个志愿 ...

随机推荐

  1. MongoDB DBA 实践3-----安装mongdb4.0发生错误

    在安装mongodb时,常常会出现一些错误,导致无法安装完全,下面则是各种错误与它们的解决方法: 1.在window机安装mongodb4.0, 其中的一种:由于缺失系统补丁,而导致无法完全安装,具体 ...

  2. mongodb的docker化安装

    查询mongo镜像 docker search mongo 拉取镜像(拉取STARS最多的那个就可以了) docker pull mongo tips:如果拉取不成功,多pull几次就可以了. 使用自 ...

  3. 嵌入式C语言自我修养 06:U-boot镜像自拷贝分析:section属性

    6.1 GNU C 的扩展关键字:attribute GNU C 增加一个 __atttribute__ 关键字用来声明一个函数.变量或类型的特殊属性.声明这个特殊属性有什么用呢?主要用途就是指导编译 ...

  4. 如何通过审计安全事件日志检测密码喷洒(Password Spraying)攻击

    许多渗透测试人员和攻击者通常都会使用一种被称为“密码喷洒(Password Spraying)”的技术来进行测试和攻击.对密码进行喷洒式的攻击,这个叫法很形象,因为它属于自动化密码猜测的一种.这种针对 ...

  5. STM32 SIM800C SIM868 连接OneNet 以及远程控制流程详解

    Onenet控制继电器教程 本文基于STM32物联网开发版:https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.29e71debNLqzW ...

  6. Python之路(三)

    今天这篇文章是对上一篇文章的补充,主要说一下与int和str有关的几个函数. ------------------------------------------------------------( ...

  7. PL/SQL轻量版(三)——游标与异常处理

    一.游标 1.概念 游标是一个 指向上下文的句柄( handle) 或指针.通过游标,PL/SQL 可以控制上下文区和处理语句时上下文区会发生些什么事情. 2.游标处理 处理显式游标 主要包含以下四个 ...

  8. 20155313 2016-2017-2 《Java程序设计》第三周学习总结

    20155313 2016-2017-2 <Java程序设计>第三周学习总结 教材学习内容总结 4.1 类与对象 4.1.1 定义类 书本中使用了设计衣服来定义类,一件衣服的设计Cloth ...

  9. 20155319 2016-2017-2 《Java程序设计》第四周学习总结

    20155319 2016-2017-2 <Java程序设计>第四周学习总结 教材学习内容总结 ==继承== 6.1.1 继承共同行为 定义:继承基本上就是避免多个类间重复定义共同行为. ...

  10. WPF 带水印的密码输入框

    原文:WPF 带水印的密码输入框 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/BYH371256/article/details/83652540 ...