Dijkstra普通算法及优先队列优化
#include<stdio.h>
#include<iostream>
#define maxv 100
#define inf 0x3fffffff
using namespace std; int cost[maxv][maxv];
int d[maxv];
bool used[maxv];
int V; void dijkstra(int s)
{
for(int i=;i<v;i++) d[i]=inf;
d[s]=;
fill(used,used+v,false); while(true)
{
int v=-;
for(int u=;u<V;u++)
{
if(!used[u]&&(v==-||d[u]<d[v])) v=u;
}
if(v=-) break;
used[v]=true;
for(int u=;u<V;u++)
{
if(d[u]>d[v]+cost[v][u])
d[u]=d[v]+cost[v][u]
}
}
}
#include<iostream>
#include<stdio.h>
#include<queue>
#define maxv 1000
#define inf 0x3fffffff
using namespace std; struct edge
{
int to;
int cost;
}; typedef pair<int,int> P;//cost v
int V;
vector<edge>G[maxv];
int d[maxv];
void difkstra(int s)
{
priority_queue <P,vector<P>,greater<P> >que;
fill(d,d+V,inf);
d[s]=;
que.push(P(,s));
while(!que.empty())
{
P p=que.top();que.pop();
int v=p.second;
for(int i=;i<G[v].size();i++)
{
edage e=G[v][i];
if(d[e.to]>d[v]+e.cost)
{
d[e.to]=d[v]+e.cost;
que.push(P(d[e.to],e.to));
}
}
}
}
Dijkstra普通算法及优先队列优化的更多相关文章
- dijkstra算法之优先队列优化
github地址:https://github.com/muzhailong/dijkstra-PriorityQueue 1.题目 分析与解题思路 dijkstra算法是典型的用来解决单源最短路径的 ...
- Dijkstra算法(朴素实现、优先队列优化)
Dijkstra算法只能求取边的权重为非负的图的最短路径,而Bellman-Ford算法可以求取边的权重为负的图的最短路径(但Bellman-Ford算法在图中存在负环的情况下,最短路径是不存在的(负 ...
- 最短路算法模板合集(Dijkstar,Dijkstar(优先队列优化), 多源最短路Floyd)
再开始前我们先普及一下简单的图论知识 图的保存: 1.邻接矩阵. G[maxn][maxn]; 2.邻接表 邻接表我们有两种方式 (1)vector< Node > G[maxn]; 这个 ...
- dijkstra 的优先队列优化
既然要学习算法,就要学习到它的精髓,才能够使用起来得心应手. 我还是远远不够啊. 早就知道,dijkstra 算法可以用优先队列优化,我却一直不知道该怎样优化.当时,我的思路是这样的:假设有n个顶点, ...
- poj 1511 优先队列优化dijkstra *
题意:两遍最短路 链接:点我 注意结果用long long #include<cstdio> #include<iostream> #include<algorithm& ...
- POJ 1511 Invitation Cards(单源最短路,优先队列优化的Dijkstra)
Invitation Cards Time Limit: 8000MS Memory Limit: 262144K Total Submissions: 16178 Accepted: 526 ...
- 地铁 Dijkstra(优先队列优化) 湖南省第12届省赛
传送门:地铁 思路:拆点,最短路:拆点比较复杂,所以对边进行最短路,spfa会tle,所以改用Dijkstra(优先队列优化) 模板 /******************************** ...
- 【bzo1579】拆点+dijkstra优先队列优化+其他优化
题意: n个点,m条边,问从1走到n的最短路,其中有K次机会可以让一条路的权值变成0.1≤N≤10000;1≤M≤500000;1≤K≤20 题解: 拆点,一个点拆成K个,分别表示到了这个点时还有多少 ...
- 图论——Dijkstra+prim算法涉及到的优先队列(二叉堆)
[0]README 0.1)为什么有这篇文章?因为 Dijkstra算法的优先队列实现 涉及到了一种新的数据结构,即优先队列(二叉堆)的操作需要更改以适应这种新的数据结构,我们暂且吧它定义为Dista ...
随机推荐
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.7.Oracle 11G R2 RAC修改public网络IP
问题:Linuxrac2节点的public网IP被占用,导致集群节点2无法访问 1.禁止相关CRS资源的启动,停止这些资源(vip,listener,scan,scan_listener,databa ...
- unity deferred lighting
不同于硬件的tbdr 软件层把光照放后面计算也有一个tbdr 先说deferred rendering 再说tiled 1.gbuffer出 G0 albedo ---rgb occlusion -- ...
- [译]ES读写文档时shard-replication模型
官网页面:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-replication.html 本文是对官网页面的 ...
- spfile 和用户环境变量 和export
RAC数据库环境变量设置 [oracle@rac1 ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Fri ...
- js怎么获取图片的相对地址
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content ...
- Linux系统目录结构,Shell脚本;关闭和开启防火墙
Linux系统目录结构 目录 描述 备注 /bin a.存放着最经常使用的命令 b.可执行文件,用户命令 c.构建最小系统所需要的命令 /boot a.内核与启动文件 b.系统启动相关文件 c.启动L ...
- linux内核及其模块的查询,加载,卸载 lsusb等
http://blog.sina.com.cn/s/blog_53e81e2a0100zkxi.html 1,/sbin/update-modules文件,他是一个linux通用的模块管理脚本程序. ...
- org.w3c.dom(java dom)解析XML文档
位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会不理想 首先来了解点Java DOM 的 API:1.解析 ...
- Unity3d 4.3 通过代码动态更改SpriteRender的Sprite
http://www.unitymanual.com/home.php?mod=space&uid=2452&do=blog&id=420 using UnityEngine; ...
- webDriver API——第7部分Desired Capabilities
The Desired Capabilities implementation. class selenium.webdriver.common.desired_capabilities.Desire ...