最短路基础

这个题目hdu-oj 1874可以用来练习最短路的一些算法。

Dijkstra 无优化版本

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#define mt memset
using namespace std;
const int maxn = 210;
const int inf = 1<<30;
int N,M;
int mp[maxn][maxn];
int cost[maxn];
bool vis[maxn];
void dijkstra(int s, int t) {
mt(vis, 0, sizeof(vis));
for(int i = 0; i < N; i++){
cost[i] = (i == s? 0 :mp[s][i]);
}
vis[s] = true;
for(int i = 1; i < N; i++) {
int _min = inf, p = -1;
for(int j = 0; j < N; j++) {
if(!vis[j] && _min > cost[j]) {
_min = cost[j];
p = j;
}
}
if(p == -1 || _min == inf) continue;//这是重点
vis[p] = true;
for(int j = 0; j < N; j++) {
if(!vis[j] && cost[j] > cost[p]+mp[p][j]) {
cost[j] = cost[p]+mp[p][j];
}
}
}
}
int main() {
while(~scanf("%d%d", &N, &M)) {
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++) {
mp[i][j] = inf;
}
}
for(int i = 0; i < M; i++) {
int a, b, x;
scanf("%d%d%d", &a, &b, &x);
mp[a][b] = mp[b][a] = min(mp[a][b], x);
}
int s,t;
scanf("%d%d", &s, &t);
dijkstra(s,t);
printf("%d\n", cost[t] == inf? -1: cost[t]);
}
return 0;
}

未优化版的Dijkstra算法时间复杂度为O(n^2)

未完待续...

hdu-oj 1874 畅通工程续的更多相关文章

  1. ACM: HDU 1874 畅通工程续-Dijkstra算法

    HDU 1874 畅通工程续 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Desc ...

  2. hdu 1874 畅通工程续

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1874 畅通工程续 Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过 ...

  3. HDU 1874畅通工程续(迪杰斯特拉算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 畅通工程续 Time Limit: 3000/1000 MS (Java/Others)     ...

  4. HDU 1874 畅通工程续-- Dijkstra算法详解 单源点最短路问题

    参考 此题Dijkstra算法,一次AC.这个算法时间复杂度O(n2)附上该算法的演示图(来自维基百科): 附上:  迪科斯彻算法分解(优酷) problem link -> HDU 1874 ...

  5. hdu 1874 畅通工程续 Dijkstra

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 题目分析:输入起点和终点,顶点的个数,已连通的边. 输出起点到终点的最短路径,若不存在,输出-1 ...

  6. HDU 1874 畅通工程续【Floyd算法实现】

    畅通工程续 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  7. hdu 1874 畅通工程续(求最短距离,dijkstra,floyd)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1874 /************************************************* ...

  8. HDU 1874 畅通工程续(最短路/spfa Dijkstra 邻接矩阵+邻接表)

    题目链接: 传送门 畅通工程续 Time Limit: 1000MS     Memory Limit: 65536K Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路. ...

  9. hdu 1874 畅通工程续(迪杰斯特拉优先队列,floyd,spfa)

    畅通工程续 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  10. HDU——1874畅通工程续(Dijkstra与SPFA)

    畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

随机推荐

  1. bg-render+bg-class+filter

    重点: 1.多层render写法参数下面的html代码段,外层bg-render---><script type='text/html'>--->{{for}}--->b ...

  2. 17 个 tar 命令实用示例【转】

    Tar(Tape ARchive,磁带归档的缩写,LCTT 译注:最初设计用于将文件打包到磁带上,现在我们大都使用它来实现备份某个分区或者某些重要的目录)是类 Unix 系统中使用最广泛的命令,用于归 ...

  3. js调用函数的格式

    如题 onclick='alert(\""+"&#1"+"\")' onclick='alert(encodeURIComponen ...

  4. perl-cgi-form

    来源: http://www.cnblogs.com/itech/archive/2012/09/23/2698595.html http://www.cnblogs.com/itech/archiv ...

  5. 常见html标签

    1.flash嵌入标签 <object> <embed allowscriptaccess="always" allowfullscreen="true ...

  6. 2.1 实践篇:使用ping来检测网速

    1. Windows功能键+R ,打开cmd窗口 2. ping -n 200 www.baidu.com #ping网站www.baidu.com ,连续200次.验证连接. 可以ctrl+C 强制 ...

  7. [分享]Host文件的原理解释及应用说明

    Host文件的原理解释及应用说明   Host文件位置及打开方式:   Window系统中有个Hosts文件(没有后缀名), Windows 98系统下该文件在Windows目录,在Windows 2 ...

  8. 超棒的自定义超酷滚动条jQuery插件 - Perfect Scrollbar

    可能大家厌倦了千篇一律的页面滚动条,如果你希望能够设计出与众不同的页面UI设计的话,Perfect ScrollBar可能就是你寻找的解决方案. 这个滚动条来自于一个个人项目,一个简单但是非常棒的滚动 ...

  9. OpenGL ES着色器语言之着色概览(官方文档)

    OpenGL ES着色器语言之着色概览(官方文档第二章) 事实上,OpenGL ES着色语言是两种紧密关联的语言.这些语言用来在OpenGL ES处理管线的可编程处理器创建着色器. 在本文档中,除非另 ...

  10. 《割绳子》《蜡笔物理学》《Contre Jour》《顽皮鳄鱼爱洗澡》等游戏用Box2D引擎实现物理部分的方法(转)

    从最热门游戏排行榜和flash游戏网站上,你能看到什么?许多2D游戏都有非常出色的物理学和美术设计.现在我们要学习那些游戏使用了什么物理学以及如何用Box2D制作它们. 除了知道是“什么”,更重要的是 ...