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 ...
随机推荐
- LeetCode Remove Duplicates from Sorted Array删除整型数组中的重复元素并返回剩下元素个数
class Solution { public: int removeDuplicates(int A[], int n) { ],*e=&A[]; //s指向开头第一个,e往后遍历相同的 i ...
- LeetCode Merge Two Sorted Lists 归并排序
题意: 将两个有序的链表归并为一个有序的链表. 思路: 设合并后的链表为head,现每次要往head中加入一个元素,该元素要么属于L1,要么属于L2,可想而知,此元素只能是L1或者L2的首个元素, ...
- 富文本编辑器Ueditor的使用
1.下载:http://ueditor.baidu.com/website/download.html. 2.解压,并放到项目webapp下. 3.jsp页面的配置. 4.配置根路径. 5.页面展示: ...
- scrum敏捷开发☞
scrum是什么?说白了就是自带一些规则的工具,团队成员按照scrum的规则计划项目,执行项目,完成项目..可以让团队提高工作效率 当前除了scrum还有其他很多类似的像Kanban,XP,RUP(规 ...
- 对ListBox控件中的数据进行排序
实现效果: 知识运用: ListBox控件的Sorted属性 //ListBox控件中的数据项是否按字母顺序排序 public bool Sorted{get;set;} 实现代码: private ...
- cloudera manager的卸载以及重新安装
1 卸载cloudera 参照 http://www.cnblogs.com/chenfool/p/3738540.html Cloudera 的官方介绍: http://www.cloudera.c ...
- pymysql 简单操作数据库
#!/usr/bin/env python #-*- coding:utf-8 -*- # author:leo # datetime:2019/4/24 15:22 # software: PyCh ...
- 理解Express 中间件
Express 中间件 Express程序基本上是一系列中间件函数的调用.中间件就是一个函数, 接受 req.res.next几个参数. 中间件函数可以执行任何代码, 对请求和响应对象进行修改, 结束 ...
- 爬虫学习(九)——登录获取cookie爬取
import urllib.requestimport urllib.parseimport http.cookiejar # http.cookiejar 该包是专门对网页的cookie只进行获取的 ...
- 转载:jsonp详解
json相信大家都用的多,jsonp我就一直没有机会用到,但也经常看到,只知道是“用来跨域的”,一直不知道具体是个什么东西.今天总算搞明白了.下面一步步来搞清楚jsonp是个什么玩意. 同源策略 首先 ...