最短路prim算法c语言,最短路-Prim算法 dijkstra算法

HDU-1233

#include

#define INF 1000000

using namespace std;

int Map[][];

bool NewNode[];

bool OldNode[];

bool UsedNode[];

int lowcast[];

int main(int argc, const char * argv[]) {

int n;

cin.sync_with_stdio(false);

while(cin>>n)

{

if(n==)

break;

for(int i=;i<=n;i++)

for(int j=;j<=n;j++)

Map[i][j]=Map[j][i]=INF;

for(int i=;i<=n;i++)

{

NewNode[i]=false;

OldNode[i]=true;

lowcast[i]=INF;

}

for(int i=;i<=n*(n-)/;i++)

{

int a,b,val;

cin>>a>>b>>val;

Map[a][b]=Map[b][a]=val;

}

int counter=,pos=,sum=;

while(counter!=n)

{

NewNode[pos]=true;

OldNode[pos]=false;

for(int i=;i<=n;i++)

{

if(OldNode[i]==true&&Map[pos][i]

lowcast[i]=Map[pos][i];

}

int Min=INF,Minpos;

for(int i=;i<=n;i++)

{

if(OldNode[i]==true&&lowcast[i]

{

Minpos=i;

Min=lowcast[i];

}

}

pos=Minpos;

counter++;

sum+=Min;

}

cout<

}

return ;

}

dijkstra算法模板:

#include

#include

#include

#define INF 20000000

#define N 1005

#define LL long long int

using namespace std;

int n,m,s,pos; //点,边,起点,终点

LL ans;//总费用

struct Node//记录指向点和路径费用

{

int pos,c;

friend bool operator

{

return a.c>b.c;

}

};

vector g[N];//临接表

int dis[N];//距离数组

void ini()//初始化

{

for(int i=;i<=n;i++)

g[i].clear();

ans=INF;

}

void dij(int from)//输入起点

{

priority_queue q;

fill(dis,dis+n+1,INF);

dis[from]=;

Node now={from,};

q.push(now);

while(!q.empty())

{

now=q.top(),q.pop();

int v=now.pos;

if(dis[v]

continue;

for(int i=;i

{

Node e;

e=g[v][i];

if(dis[e.pos]>dis[v]+e.c)

{

dis[e.pos]=dis[v]+e.c;

Node next={e.pos,dis[e.pos]};

q.push(next);

}

}

}

}

最短路径算法-Dijkstra算法的应用之单词转换(词梯问题)(转)

一,问题描述 在英文单词表中,有一些单词非常相似,它们可以通过只变换一个字符而得到另一个单词.比如:hive-->five:wine-->line:line-->nine:nine- ...

(转)最短路算法--Dijkstra算法

转自:http://blog.51cto.com/ahalei/1387799         上周我们介绍了神奇的只有五行的Floyd最短路算法,它可以方便的求得任意两点的最短路径,这称为“多源最短 ...

【hdu 2544最短路】【Dijkstra算法模板题】

Dijkstra算法 分析 Dijkstra算法适用于边权为正的情况.它可用于计算正权图上的单源最短路( Single-Source Shortest Paths, SSSP) , 即从单个源点出发, ...

HDU1535——Invitation Cards(最短路径:SPAF算法+dijkstra算法)

Invitation Cards DescriptionIn the age of television, not many people attend theater performances. A ...

《算法导论》读书笔记之图论算法—Dijkstra 算法求最短路径

自从打ACM以来也算是用Dijkstra算法来求最短路径了好久,现在就写一篇博客来介绍一下这个算法吧 :) Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的 ...

最小生成树(prime算法 &; kruskal算法)和 最短路径算法(floyd算法 &; dijkstra算法)

一.主要内容: 介绍图论中两大经典问题:最小生成树问题以及最短路径问题,以及给出解决每个问题的两种不同算法. 其中最小生成树问题可参考以下题目: 题目1012:畅通工程 http://ac.jobdu ...

最短路径算法——Dijkstra算法

在路由选择算法中都要用到求最短路径算法.最出名的求最短路径算法有两个,即Bellman-Ford算法和Dijkstra算法.这两种算法的思路不同,但得出的结果是相同的. 下面只介绍Dijkstra算法 ...

单源最短路径算法——Dijkstra算法(迪杰斯特拉算法)

一 综述 Dijkstra算法(迪杰斯特拉算法)主要是用于求解有向图中单源最短路径问题.其本质是基于贪心策略的(具体见下文).其基本原理如下: (1)初始化:集合vertex_set初始为{sourc ...

最短路径算法——Dijkstra算法与Floyd算法

转自:https://www.cnblogs.com/smile233/p/8303673.html 最短路径 ①在非网图中,最短路径是指两顶点之间经历的边数最少的路径. AE:1    ADE:2  ...

随机推荐

html5新增及删除标签

一.新增标签 有一种划分为,功能性标签[html5新增,如canvas,旧浏览器没有]和语义性标签[如header等只是增强语义,没有新功能].下面按照分几个小类来说. 1.结构标签 新增的结构标签, ...

DUILIB CDialogBuilder 使用问题

频繁调用CDialogBuilder的create接口创建同一个配置文件,会报异常: 正常的处理方式如下: if (!m_dlgBuilder.GetMarkup()->IsValid()) { ...

Javascript之旅(一)

Javascript之旅(一) 一.基础知识 基本语法 变量 数据类型 字符串 数组 对象 条件判断 循环 Map和Set iterable 为什么要学习JavaScript JavaScript 是 ...

interblock corruption &; intrablock corruption

interblock corruption: corruption blocks rather than within the block itself. can only be logical co ...

delphi Sender和Tag的用法1

Sender和Tag的用法  在它们共同的OnClick事件下返回单击的那个按钮的标题         unit Unit1;interfaceuses  Winapi.Windows, Winapi ...

STL string 模拟

下面的代码来自c++ primer plus第5版第12章,书中代码写的非常好: // string1.h -- fixed and augmented string class definition ...

CF #edu 11 C. Hard Process

题目链接:http://codeforces.com/problemset/problem/660/C 大意是给一个01数组,至多可以将k个0变为1,问最后数组中最长能有多少个连续的1,并输出. 问题 ...

微信公众号开发《三》微信JS-SDK之地理位置的获取,集成百度地图实现在线地图搜索

本次讲解微信开发第三篇:获取用户地址位置信息,是非常常用的功能,特别是服务行业公众号,尤为需要该功能,本次讲解的就是如何调用微信JS-SDK接口,获取用户位置信息,并结合百度地铁,实现在线地图搜索,与 ...

PHP开发程序员的学习路线

PHP开发程序员的学习路线 兄弟连PHP培训,简单为大家梳理了每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定学习成长目标. 第一阶段:基础阶段(基础PHP程序员) 重点:把LNMP搞熟 ...

c#中内置委托

一.Action泛型委托 和之前委托最大区别在于不用定义委托,直接实例化委托(申明就可以),泛型其实就是选择数据类型,进行使得程序更加安全,并且也实现了委托的重载,最多选择16个参数. namespa ...

你可能感兴趣的:(最短路prim算法c语言)