Dikstra 堆优化板子
#include <bits/stdc++.h>
#define MAXN 10005
using namespace std;
typedef long long LL;
vector<pair<int,LL>> edges[MAXN];
const LL oo=1e18;
int n,m;
LL d[MAXN];
void init(){
for(int i=;i<MAXN;i++)edges[i].clear();
for(int i=;i<MAXN;i++)d[i]=oo;
}
int main(){
freopen("test1.in","r",stdin);
std::ios::sync_with_stdio();
std::cin.tie();
int cases;
scanf("%d",&cases);
while(cases--){
init();
scanf("%d%d",&n,&m);
while(m--){
int x,y;
LL z;
scanf("%d%d%lld",&x,&y,&z);
edges[x].push_back(make_pair(y,z));
}
priority_queue<pair<int,int>> que;
d[]=;
que.push(make_pair(-d[],));
while(!que.empty()){
int now = que.top().second;
que.pop();
for(int i=;i<edges[now].size();i++){
int v = edges[now][i].first;
if(d[v]>d[now]+edges[now][i].second){
d[v] = d[now]+edges[now][i].second;
que.push(make_pair(-d[v],v));
}
}
}
printf("%lld\n",d[n]);
}
return ;
}
Dikstra 堆优化板子的更多相关文章
- dijkstra堆优化板子
咕咕咕. #include<queue> #include<cstdio> #include<cstring> #include<algorithm> ...
- Dijkstra算法堆优化
转自 https://blog.csdn.net/qq_41754350/article/details/83210517 再求单源最短路径时,算法有优劣之分,个人认为在时间方面 朴素dijkstra ...
- uva10986 堆优化单源最短路径(pas)
var n,m,s,t,v,i,a,b,c:longint;//这道题的代码不是这个,在下面 first,tr,p,q:..]of longint; next,eb,ew:..]of longint; ...
- 最短路模板(Dijkstra & Dijkstra算法+堆优化 & bellman_ford & 单源最短路SPFA)
关于几个的区别和联系:http://www.cnblogs.com/zswbky/p/5432353.html d.每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个(草儿家到 ...
- 堆优化的Dijkstra
SPFA在求最短路时不是万能的.在稠密图时用堆优化的dijkstra更加高效: typedef pair<int,int> pii; priority_queue<pii, vect ...
- codeforces 449B Jzzhu and Cities (Dij+堆优化)
输入一个无向图<V,E> V<=1e5, E<=3e5 现在另外给k条边(u=1,v=s[k],w=y[k]) 问在不影响从结点1出发到所有结点的最短路的前提下,最多可以 ...
- POJ 1511 - Invitation Cards 邻接表 Dijkstra堆优化
昨天的题太水了,堆优化跑的不爽,今天换了一个题,1000000个点,1000000条边= = 试一试邻接表 写的过程中遇到了一些问题,由于习惯于把数据结构封装在 struct 里,结果 int [10 ...
- POJ 2502 - Subway Dijkstra堆优化试水
做这道题的动机就是想练习一下堆的应用,顺便补一下好久没看的图论算法. Dijkstra算法概述 //从0出发的单源最短路 dis[][] = {INF} ReadMap(dis); for i = 0 ...
- Bzoj 2834: 回家的路 dijkstra,堆优化,分层图,最短路
2834: 回家的路 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 62 Solved: 38[Submit][Status][Discuss] D ...
随机推荐
- 第三方库Mantle的源码解析
Mantle是一个用于简化Cocoa或Cocoa Touch程序中model层的第三方库.通常我们的应该中都会定义大量的model来表示各种数据结构,而这些model的初始化和编码解码都需要写大量的代 ...
- Python目录和文件处理总结
1.判断目录是否存在.判断文件是否存在.创建目录.重命名目录或文件 import os #获取当前目录路径: E:\Work\Projects\python print(os.getcwd()) #判 ...
- win10 64位安装redis 及Redis Desktop Manager使用
说多无益,先把redis在win上的开发环境搭一下. redis官方没有64位的Windows下的可执行程序,目前有个开源的托管在github上, 地址:https://github.com/Serv ...
- [日常] 神奇的引导问题deepin与win10
经过昨天的一番折腾,我的电脑一开机就可以进入deepin的引导界面,也可以登录到deepin,但是访问windows直接报错.我的windows已经使用PE安装完了win10,还是打不开. 当我在研究 ...
- springboot中http 的get post put delete请求
组合注解(RequestMapping的变形) @GetMapping = @RequestMapping(method = RequestMethod.GET)@PostMapping = @Req ...
- 4-9 Panadas与sklearn结合实例
1.显示百分比的柱状图 In [1]: import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplo ...
- AtCoder - 2140 (思维)
题意 https://vjudge.net/problem/AtCoder-2140 每次告诉你新的a:b,计算最后最小的a+b. 思路 如 3 2 3 1 1 3 2 先令a=2,b=3,发现新的为 ...
- JAVA中this和super用法
参考网上资料和自行理解总结java中this和super中各自用法及其差异 <一>. this的用法 构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器返回该类的对 ...
- 7.Java基础_Java数据输入
import java.util.Scanner; public class Output { public static void main(String[] args){ Scanner sc=n ...
- Linux shell 判断字符串为空等常用命令
1.判断字符串为空 if [ -z "$str" ]; then echo "empty string" fi 2.判断文件是否存在 if [ -f /home ...