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算法的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

  7. 最短路径算法——Dijkstra算法

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

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

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

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

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

随机推荐

  1. FastDFS+nginx+keepalived集群搭建

    安装环境 nginx-1.6.2 libfastcommon-master.zip FastDFS_v5.05.tar.gz(http://sourceforge.net/projects/fastd ...

  2. C++ Word Count 发布程序

    前段时间,模仿 Linux 系统下的 wc 程序,在 Windows 系统环境下使用 C/C++ 实现了一个相似的 WC 程序,只不过有针对性,针对的是 C/C++,Java 等风格的源代码文件. 此 ...

  3. 禁止火狐浏览器缓存input标签方法

    禁止火狐浏览器缓存input标签方法 问题1:在火狐浏览器里,云平台的输入框.选项框.勾选框…填写之后按F5刷新页面,之前填的东西会保留着,其它浏览器不会火狐强制刷新用Ctrl + F5 浏览器自动保 ...

  4. ajax原理和XmlHttpRequest对象

    Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面.这其中最关键的一步就是从服务器获得请求数据.要清楚这 ...

  5. JavaScript Match

    JavaScript Match 版权声明:未经授权,严禁转载! 随机数 // 随机数 Math.random() 随机生成一个大于等于0且小于1的小数. // 0>= r < 1 [0, ...

  6. 20145307陈俊达_安卓逆向分析_dex2jar&jd-gui的使用

    20145307陈俊达_安卓逆向分析_dex2jar&jd-gui的使用 引言 这次免考选择了四个项目,难度也是从简到难,最开始先写一个工具的使用 想要开发安卓首先要会编写代码,但是想要逆向分 ...

  7. SYSBIOS学习笔记---线程(Threads)

    在SYS/BIOS中,广义上指被处理器执行的任何独立的指令流.线程是一个能够调用一个函数或者中断服务程序的单点控制.在sysbios系统中一共有硬件中断(HWI).软件中断(SWI).任务(Task) ...

  8. 'telnet'不是内部或外部命令,怎么办?

    ['telnet'不是内部或外部命令,也不是可运行的程序或批处理文件]当你想用telnet命令时,发现提示这句话怎么办?其实很简单,接下来为大家介绍下如何使用 1. 一般只有windows7才会出现这 ...

  9. C语言结构体,点运算和箭头运算

    C语言有一种数据类型叫结构体,其定义格式为: struct 结构体名 { 结构体成员变量定义; }; 如: struct student { char name[20]; int age ; doub ...

  10. 【前端】javascript+jquery实现手风琴式的滚动banner或产品展示图

    实现效果 实现步骤 // 鼠标放入到li中该盒子变宽,其他盒子变窄,鼠标移开大盒子,恢复原样 // 实现步骤 // 1. 给li添加背景 // 2. 绑定onmouseover事件,鼠标放入到li中, ...