最短路-Prim算法 dijkstra算法
HDU-1233
#include <iostream>
#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])
lowcast[i]=Map[pos][i];
}
int Min=INF,Minpos;
for(int i=;i<=n;i++)
{
if(OldNode[i]==true&&lowcast[i]<Min)
{
Minpos=i;
Min=lowcast[i];
}
}
pos=Minpos;
counter++;
sum+=Min;
}
cout<<sum<<endl; }
return ;
}
dijkstra算法模板:
#include <iostream>
#include <vector>
#include <queue>
#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 <(Node a,Node b)
{
return a.c>b.c;
}
};
vector<Node> g[N];//临接表
int dis[N];//距离数组
void ini()//初始化
{
for(int i=;i<=n;i++)
g[i].clear();
ans=INF;
}
void dij(int from)//输入起点
{
priority_queue<Node> 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]<now.c)
continue;
for(int i=;i<g[v].size();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);
}
}
}
}
最短路-Prim算法 dijkstra算法的更多相关文章
- 最短路径算法-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 ...
随机推荐
- Oracle 启动的时候需要的服务
- Java设计模式应用——适配器模式
性能监控系统中,存在告警模块和报表模块,告警结果和报表结果都需要导出. 由于告警开发进度较快,已经实现了excel导出.csv导出.zip导出功能,现在报表需要excel导出.csv导出.pdf导出功 ...
- web前端----html基础
一.初始html 1.web服务本质 import socket sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.bind((&q ...
- bzoj1633 / P2875 [USACO07FEB]牛的词汇The Cow Lexicon
P2875 [USACO07FEB]牛的词汇The Cow Lexicon 三维dp 它慢,但它好写. 直接根据题意设三个状态: $f[i][j][k]$表示主串扫到第$i$个字母,匹配到第$j$个单 ...
- 第一个c++泛型函数(即模板)
先定义如下: ns.h template <typename T> // 这个关键字typename, 明显多此一举 inline void PRINT_ELEMENTS(const T& ...
- python监控端口脚本[jkport1.0.py]
此脚本根据端口判断进程是否存活, 如果有指定的端口就证明进程是没问题的, 如果检测不到端口就是说业务进程已经挂掉了, 此时自动重启程序, 不多说下面请看脚本 创建脚本 我这里模拟的是nginx, 监控 ...
- poj Meteor Shower - 搜索
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16313 Accepted: 4291 Description Bess ...
- uboot下的命令使用示例
1.usb 可以使用此命令读取u盘里的内容,此命令加上相关参数可以有以下功能: 1.1usb start 在使用u盘之前必须启动此命令以初始化好fat文件系统环境,笔者的输出如下: jello # u ...
- react 为元素添加自定义事件监听器
https://zhenyong.github.io/react/tips/dom-event-listeners.html class MovieItem extends React.Compone ...
- EF、Repository、Factory、Service间关系
EF和Repository 实体(Entities):具备唯一ID,能够被持久化,具备业务逻辑,对应现实世界业务对象. 值对象(Value objects):不具有唯一ID,由对象的属性描述,一般为内 ...