(重刷)HDU 1874 畅通工程续 + HDU 2544 最短路 最短路水题,dijkstra解法。
今天初看dijkstra,先拿这两题练手,其他变形题还是不是很懂。
模版题,纯练打字。。。
HDU 1874:
#include <cstdio> #define MAXN 200
#define INF 0xfffff int n;
int Edge[MAXN][MAXN];
int s[MAXN];
int dist[MAXN];
int path[MAXN]; void Dijkstra(int v0) {
int i, j, k;
for (i = 0; i < n; i++) {
dist[i] = Edge[v0][i];
s[i] = 0;
if (i != v0 && INF > dist[i])
path[i] = v0;
else
path[i] = -1;
}
s[v0] = 1;
dist[v0] = 0;
for (i = 0; i < n - 1; i++) {
int min = INF, u = v0;
for (j = 0; j < n; j++)
if (!s[j] && dist[j] < min){
u = j;
min = dist[j];
}//if
s[u] = 1;
for (k = 0; k < n; k++) {
if (!s[k] && Edge[u][k] < INF && dist[u] + Edge[u] [k] < dist[k]) {
dist[k] = dist[u] + Edge[u][k];
path[k] = u;
}//if
}//for
}//for
} int main() {
int m;
int i, j;
while (scanf("%d%d", &n, &m) != EOF) {
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
if (i == j)
Edge[i][j] = 0;
else
Edge[i][j] = INF;
int x, y, z;
for (i = 0; i < m; i++) {
scanf("%d%d%d", &x, &y, &z);
if (z < Edge[x][y])
Edge[y][x] = Edge[x][y] = z;
}
scanf("%d%d", &x, &y);
Dijkstra(x);
if (dist[y] < INF)
printf("%d\n", dist[y]);
else
printf("-1\n");
}//while
return 0;
}
HDU 2544:
#include <cstdio> #define MAXN 200
#define INF 0xfffff int n;
int Edge[MAXN][MAXN];
int s[MAXN];
int dist[MAXN];
int path[MAXN]; void Dijkstra(int v0) {
int i, j, k;
for (i = 0; i < n; i++) {
dist[i] = Edge[v0][i];
s[i] = 0;
if (i != v0 && INF > dist[i])
path[i] = v0;
else
path[i] = -1;
}
s[v0] = 1;
dist[v0] = 0;
for (i = 0; i < n - 1; i++) {
int min = INF, u = v0;
for (j = 0; j < n; j++)
if (!s[j] && dist[j] < min){
u = j;
min = dist[j];
}//if
s[u] = 1;
for (k = 0; k < n; k++) {
if (!s[k] && Edge[u][k] < INF && dist[u] + Edge[u] [k] < dist[k]) {
dist[k] = dist[u] + Edge[u][k];
path[k] = u;
}//if
}//for
}//for
} int main() {
int m;
int i, j;
while (scanf("%d%d", &n, &m) && n && m) {
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
if (i == j)
Edge[i][j] = 0;
else
Edge[i][j] = INF;
int x, y, z;
for (i = 0; i < m; i++) {
scanf("%d%d%d", &x, &y, &z);
if (z < Edge[x-1][y-1])
Edge[y-1][x-1] = Edge[x-1][y-1] = z;
}
Dijkstra(0);
printf("%d\n", dist[n - 1]);
}//while
return 0;
}
(重刷)HDU 1874 畅通工程续 + HDU 2544 最短路 最短路水题,dijkstra解法。的更多相关文章
- ACM: HDU 1874 畅通工程续-Dijkstra算法
HDU 1874 畅通工程续 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Desc ...
- HDU 1874 畅通工程续-- Dijkstra算法详解 单源点最短路问题
参考 此题Dijkstra算法,一次AC.这个算法时间复杂度O(n2)附上该算法的演示图(来自维基百科): 附上: 迪科斯彻算法分解(优酷) problem link -> HDU 1874 ...
- hdu 1874 畅通工程续
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1874 畅通工程续 Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过 ...
- HDU 1874畅通工程续(迪杰斯特拉算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 畅通工程续 Time Limit: 3000/1000 MS (Java/Others) ...
- hdu 1874 畅通工程续 Dijkstra
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 题目分析:输入起点和终点,顶点的个数,已连通的边. 输出起点到终点的最短路径,若不存在,输出-1 ...
- HDU 1874 畅通工程续【Floyd算法实现】
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- hdu 1874 畅通工程续(求最短距离,dijkstra,floyd)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1874 /************************************************* ...
- HDU 1874 畅通工程续(最短路/spfa Dijkstra 邻接矩阵+邻接表)
题目链接: 传送门 畅通工程续 Time Limit: 1000MS Memory Limit: 65536K Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路. ...
- hdu 1874 畅通工程续(迪杰斯特拉优先队列,floyd,spfa)
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
随机推荐
- Spark系列(七)Master中的资源调度
资源调度 说明: Application的调度算法有两种,分别为spreadOutApps和非spreadOutApps spreadOutApps 在spark-submit脚本中,可以指定要多少个 ...
- 【移动开发】安卓Lab2(01)
本次Lab需要用到Google Map的API,分享学习一下Google Map的知识 需求: 界面: 1. 主界面(map界面): 提供了指定的学校校园地图图片,不能用Google的API生成图片 ...
- 【转】一步步教你读懂NET中IL(图文详解)
本文章以一个实际的例子,让你了解堆叠式 VM 的运作原理,并对 .NET IL(Intermediate Language)有最基本的領略,需要的朋友可以参考下 .NET CLR 和 Java VM ...
- 第二百三十七天 how can I 坚持
最近好像迷上看小说了,<灵域>,而且也感觉会看小说了. 话说,今天好冷啊,真怕在路上冻着就冻萌了,寒风赤骨啊. 好想买个帽子.好想让送个帽子. 睡觉.
- SAE 合并图片
$domain = 'picleader'; //图片库的域名 $stgurl = 'http://lemonluoxing-picleader.stor.sinaapp.com/'; //绝对路径 ...
- #JAVA操作LDAP
package com.wisdombud.unicom.monitor.ldap; import java.util.ArrayList; import org.slf4j.Logger; impo ...
- DATASNAP为支持FIREDAC而增加的远程方法的数据类型TFDJSONDataSets
前面的博客提到用FIREDAC全面替代COM那一套东西:DATAPROVIDER,OLEVARIANT,CLIENTDATASET,DBEXPRESS... 显然,DATASNAP的远程方法必须增加对 ...
- POJ 2446 Chessboard (二分图最大匹配)
题目链接:http://poj.org/problem?id=2446 给你一个n*m的棋盘,其中有k个洞,现在有1*2大小的纸片,纸片不能覆盖洞,并且每个格子最多只能被覆盖一次.问你除了洞口之外这个 ...
- shiro安全框架
原文:http://blog.csdn.net/boonya/article/details/8233303 可能大家早先会见过 J-security,这个是 Shiro 的前身.在 2009 年 3 ...
- 关于java的JIT知识
1.JIT的工作原理图 工作原理 当JIT编译启用时(默认是启用的),JVM读入.class文件解释后,将其发给JIT编译器.JIT编译器将字节码编译成本机机器代码. 通常javac将程序源码编译, ...