狄斯奎诺(dijkstra 模板)
/*狄斯奎诺算法(dijkstra)<邻接表> */
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define maxn 0x3f3f3f3f
#define NN 100000
struct stu
{
int v_num; /* 邻接表编号*/
float len; /* 边长*/
struct stu *next ;
};
/*n表示节点个数,u-->表示源节点*/
stu gong[NN] ;
void Dijkstra(int n,int u,float dis[],int p[])
{
int i,j,t;
float temp;
bool *ss = ( bool *)malloc(sizeof(bool)) ; //逐步的放进ss{}集合中
stu * pstu;
for(i=;i<n;i++) //init(dis,p)
{
dis[i]=maxn;
p[i]=-; //表示前一个节点为root;
ss[i]=false; //flase-->表示没有在ss集合中
}
if(!(pstu=gong[u].next)) //表示只有自己一个节点
return ;
while(pstu)
{
dis[pstu->v_num] = pstu->len ;
p[pstu->v_num] = u ; //表示该顶点
pstu=pstu->next;
}
dis[u]=;
ss[u]=true; //表示这个顶点在ss集合中
for(i=;i<n;i++)
{
temp=maxn;
t=u;
for(j=;j<n;j++)
{
if(!ss[j]&&temp>dis[j])
{
temp=dis[j];
t=j;
}
}
if(t==u) break; //说明没有最路!
ss[t]=true;
pstu=gong[t].next;
while(pstu)
{
if(!ss[pstu->v_num]&&dis[pstu->v_num]>dis[t]+pstu->len)
{
dis[pstu->v_num]=dis[t]+pstu->len;
ss[pstu->v_num]=true;
}
pstu=pstu->next;
}
}
free(ss);
}
狄斯奎诺(dijkstra 模板)的更多相关文章
- HDU-2544 最短路 Dijkstra模板题
题目链接:https://vjudge.net/problem/HDU-2544 题意: 题目要求找到节点1到节点n之间的一条最短路 分析: Dijkstra模板题 单源最短路径,可以用dijkstr ...
- Dijkstra 模板 最短路
转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents ------------------------------------------ ...
- hdu 2544 hdu 1874 poj 2387 Dijkstra 模板题
hdu 2544 求点1到点n的最短路 无向图 Sample Input2 1 //结点数 边数1 2 3 //u v w3 31 2 52 3 53 1 20 0 Sample Output32 ...
- 单源最短路——Dijkstra模板
算法思想: 类似最小生成树的贪心算法,从起点 v0 每次新拓展一个距离最小的点,再以这个点为中间点,更新起点到其他点的距离. 算法实现: 需要定义两个一维数组:①vis[ i ] 表示是否从源点到顶点 ...
- 51nod 1459 迷宫游戏 dijkstra模板
链接:迷宫游戏 问题 - 51Nod http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1459 1459 迷宫游戏 基准 ...
- CCCC L2-001 紧急救援 floyd改的dijkstra模板 (记录路径) L3 天梯地图
https://www.patest.cn/contests/gplt/L2-001 题解:求最短路的条数,并输出点的权值最大的路径,用priority_queue会wa两个点,原因不明. 于是又学了 ...
- Dijkstra模板 dj斯特拉
图论里非常常用的dijkstra,自己加了个路径查找,做个模板吧: ; struct Edge { int from,to,dist; Edge(int u, int v, int d):from(u ...
- 洛谷 P3371 【模板】单源最短路径(弱化版) && dijkstra模板
嗯... 题目链接:https://www.luogu.org/problem/P3371 没什么好说的,这是一个最短路的模板,这里用的dijkstra做的... 注意: 1.dijkstra和邻接表 ...
- HDU 2544 最短路 【Dijkstra模板题】
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2544 思路:最短路的模板题 Dijkstra 算法是一种类似于贪心的算法,步骤如下: 1.当到一个点时, ...
随机推荐
- python3 urllib.request 网络请求操作
python3 urllib.request 网络请求操作 基本的网络请求示例 ''' Created on 2014年4月22日 @author: dev.keke@gmail.com ''' im ...
- Eclipse中运行Tomcat遇到的内存溢出错误
使用Eclipse(版本Indigo 3.7)调试Java项目的时候,遇到了下面的错误: Exception in thread "main" Java.lang.OutOfMem ...
- cout的输出格式初探3
#include <iostream> #include <iomanip> using namespace std; int main() { double f=2.0/3. ...
- 从win10家庭版/中文版升级到win10专业版
发布时间:2015-8-4 很多同学在不了解win10系统版本的情况下,安装了win10家庭版/中文版,不管是win10家庭版,还是win10家庭中文版,或者是win10家庭单语言版,它们都是 ...
- 【BZOJ】【1038】【ZJOI2008】瞭望塔
计算几何/半平面交 说是半平面交,实际上只是维护了个下凸壳而已……同1007水平可见直线 对于每条线段,能看到这条线段的点都在这条线段的“上方”,那么对所有n-1条线段求一个可视区域的交,就是求一个半 ...
- cocos2d js ScrollView的使用方法
游戏中非常多须要用到ScrollView的情况,也就是须要滚动一片区域. 这里有两种实现方法,一种是使用cocos studio的方式,另外一种是手写代码.先看第一种 第一种记得在设置滚动区域时选取裁 ...
- SpringMVC in IDEA开发实践
按照上篇装过Tomcat之后. 本机本来装了IDEA和Maven. 参考以下这篇 https://my.oschina.net/gaussik/blog/385697 <使用IntelliJ I ...
- 第四章 第一个rabbitmq程序
rabbitmq消息发送模型 要素: 生产者 消费者 交换器:生产者将消息发送到交换器 队列:交换器通过某种路由规则绑定到指定队列,将消息加入队列,消费者从队列消费消息 前提: 引入rabbitmq的 ...
- [leetcode]Reorder List @ Python
原题地址:http://oj.leetcode.com/problems/reorder-list/ 题意: Given a singly linked list L: L0→L1→…→Ln-1→Ln ...
- Convert Sorted Array to Binary Search Tree leetcode java
题目: Given an array where elements are sorted in ascending order, convert it to a height balanced BST ...