dijkstra 堆优化
#include <iostream>
#include <vector>
#include <cstring>
#include <queue>
using namespace std;
struct name
{
int end;
int l;
};
bool vis[];
int n,m,s;
long long dis[];
vector <struct name> v[];
struct node
{
int distance;
int pn;
friend bool operator <(const node a,const node b)
{
return a.distance>b.distance;
}
};
priority_queue <struct node> q;
void dijstra()
{
struct node now;
now.distance=;
now.pn=s;
dis[s]=;
q.push(now);
while(!q.empty())
{
int x=q.top().pn;
q.pop();
if(vis[x]) continue;
vis[x]=true;
for(int i=;i<v[x].size();i++)
{
if(vis[v[x][i].end]) continue;
int next=v[x][i].end;
if(dis[next]>dis[x]+v[x][i].l)
{
dis[next]=dis[x]+v[x][i].l;
struct node nextt;
nextt.distance=dis[next];
nextt.pn=next;
q.push(nextt);
}
}
}
for(int i=;i<=n;i++)
{
cout<<dis[i]<<" ";
}
return ;
}
int main ()
{ cin>>n>>m>>s;
memset(dis,0x3f3f3f3f,sizeof(dis));
for(int i=;i<=m;i++)
{
int x,y,z;
cin>>x>>y>>z;
struct name now;
now.end=y;
now.l=z;
v[x].push_back(now);
}
dijstra();
return ;
}
dijkstra 堆优化的更多相关文章
- 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 ...
- POJ2387(dijkstra堆优化)
Til the Cows Come Home Bessie is out in the field and wants to get back to the barn to get as much s ...
- hdu 2544 单源最短路问题 dijkstra+堆优化模板
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- 深入理解dijkstra+堆优化
深入理解dijkstra+堆优化 其实就这几种代码几种结构,记住了完全就可以举一反三,所以多记多练多优化多思考. Dijkstra 对于一个有向图或无向图,所有边权为正(边用邻接矩阵的形式给出), ...
- dijkstra堆优化(multiset实现->大大减小代码量)
例题: Time Limit: 1 second Memory Limit: 128 MB [问题描述] 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣 ...
- POJ 1511 - Invitation Cards 邻接表 Dijkstra堆优化
昨天的题太水了,堆优化跑的不爽,今天换了一个题,1000000个点,1000000条边= = 试一试邻接表 写的过程中遇到了一些问题,由于习惯于把数据结构封装在 struct 里,结果 int [10 ...
- Dijkstra堆优化学习
最短路径例题 今天特地学习了Dijkstra的堆优化(主要是慕名已久). 我们需要一个堆来记录[编号,到编号这个点的最短路径值(当然只是当前的)] 与原来的Dijkstra操作基本一致,主要有以下几点 ...
- 【Dijkstra堆优化】洛谷P2243电路维修
题目背景 Elf 是来自Gliese 星球的少女,由于偶然的原因漂流到了地球上.在她无依无靠的时候,善良的运输队员Mark 和James 收留了她.Elf 很感谢Mark和James,可是一直也没能给 ...
- hdu3790 dijkstra+堆优化
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=3790 分析:dijkstra没有优化的话,复杂度是n*n,优化后的复杂度是m*logm,n是顶点数,m ...
随机推荐
- php:生成的时间与本地电脑的时间不匹配
如题,在php中我发现在数据库中的时间跟电脑上的时间没有同步 本地时间: 数据库中,生成的时间: 很明显,时分秒是对应不上去的,那么我们只要在php.ini中找到 这里被注释掉了,那我们就改成这样: ...
- 500 Days Of Summer
<和莎莫的500天>,一部爱情片. Summer和Tom两人不同的爱情观走在了一起,或许真的就是爱情观不同,或许是Summer爱Tom爱的不够深,最终的结局是那么不尽人意. 有人愿意把秘密 ...
- Linux下bash的快捷键
Ctrl + A :切换到命令行开始 Ctrl + E :切换到命令行末尾 Ctrl + L : 清屏,相当于clear Ctrl + U :清除剪切光标前的内容 Ctrl + K :剪切清除光标后 ...
- 【BZOJ4866】[YNOI2017] 由乃的商场之旅(莫队)
点此看题面 大致题意: 给你一个字符串,每次给你一段区间,问这段区间内有多少个字符串在重新排列后可以变成一个回文串. 关于莫队 详见这篇博客:莫队算法学习笔记(一)--普通莫队. 关于回文 要使一个字 ...
- js转换时间戳成日期格式
<script> function getLocalTime(nS) { return new Date(parseInt(nS) * 1000).toLocaleString().rep ...
- Oracle 数据库、实例、表空间、用户、数据库对象
Oracle是一种数据库管理系统,是一种关系型的数据库管理系统.通常情况了我们称的“数据库”,包含了物理数据.数据库管理系统.内存.操作系统进程的组合体,就是指这里所说的数据库管理系统. 完整的Ora ...
- react的Redux基础
redux的中文文档:http://www.redux.org.cn/ redux的英文官网:https://redux.js.org/ redux相当于vuex Redux 是 JavaScript ...
- vue学习之路 - 2.基本操作(上)
基本操作(上) 本章节简介: vue的安装 vue实例创建 数据绑定渲染 表单数据双向绑定 事件处理 安装 安装方式有三种: 一.vue官网直接下载 http://vuejs.org/js/vue.m ...
- yum 安装percona mysql 5.7
Mysql5.7安装准备 1.基础信息: (1)可参考官方文档[https://www.percona.com/doc/percona-server/5.7/installation/yum_repo ...
- vue入门之vue-cli安装项目
第一步先安装nmp 在node.js的官网下载即可. 第二步 直接安装刚下载好的node.js即可,(这里建议不要修改node.js的安装路径),傻瓜式直接下一步即可 检测是否安装成功: 在cmd的控 ...