HDU 2544 最短路 最短路问题
解题报告:
这题就是求两个单源点之间的最小距离,属于最短路问题,由于数据量很小,只有100,所以这题可以用弗洛伊德也可以用迪杰斯特拉,都可以过,但是用迪杰斯特拉会快一点,但用弗洛伊德的代码会稍短一点,纯属裸的算法题,这里给出两种算法的代码:
弗洛伊德算法:
#include<cstdio>
#include<cstring>
#include<iostream>
const int MAX = 0xfffff;
int map[][];
int main() {
int N,M,x,y,z;
while(scanf("%d%d",&N,&M)&&(N||M)) {
for(int i = ;i<=N;++i)
for(int j = ;j<=N;++j)
map[i][j] = (i==j? :MAX);
for(int i = ;i<=M;++i) {
scanf("%d%d%d",&x,&y,&z);
map[x][y] = map[y][x] = z;
}
for(int i = ;i<=N;++i)
for(int j = ;j<=N;++j)
for(int k = ;k<=N;++k)
map[j][k] = std::min(map[j][k],map[j][i]+map[i][k]);
printf("%d\n",map[][N]);
}
return ;
}
迪杰斯特拉:
#include<cstdio>
#include<iostream>
#include<cstring>
const int MAX = 0xffff;
int map[][],T[],visit[];
int main() {
int N,M,x,y,z;
while(scanf("%d%d",&N,&M)&&(N||M)) {
for(int i = ;i<=N;++i) {
T[i] = MAX;
for(int j = ;j<=N;++j)
map[i][j] = MAX;
}
for(int i = ;i<=M;++i) {
scanf("%d%d%d",&x,&y,&z);
map[x][y] = map[y][x] = z;
}
memset(visit,,sizeof(visit));
T[] = ;
int s = ;
while() {
if(s==N)
break;
for(int i = ;i<=N;++i)
T[i] = std::min(T[i],T[s]+map[s][i]);
visit[s] = ;
int Min = MAX;
for(int i = ;i<=N;++i)
if(!visit[i]&&(T[i]<Min)) {
s = i;
Min = T[i];
}
}
printf("%d\n",T[N]);
}
return ;
}
HDU 2544 最短路 最短路问题的更多相关文章
- ACM: HDU 2544 最短路-Dijkstra算法
HDU 2544最短路 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Descrip ...
- UESTC 30 &&HDU 2544最短路【Floyd求解裸题】
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- hdu 2544 单源最短路问题 dijkstra+堆优化模板
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- HDU - 2544最短路 (dijkstra算法)
HDU - 2544最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以 ...
- hdu 2544 最短路
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2544 最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shi ...
- HDU 2544最短路 (迪杰斯特拉算法)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2544 最短路 Time Limit: 5000/1000 MS (Java/Others) Me ...
- (重刷)HDU 1874 畅通工程续 + HDU 2544 最短路 最短路水题,dijkstra解法。
floyd解法 今天初看dijkstra,先拿这两题练手,其他变形题还是不是很懂. 模版题,纯练打字... HDU 1874: #include <cstdio> #define MAXN ...
- hdu 2544 最短路 Dijkstra
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 题目分析:比较简单的最短路算法应用.题目告知起点与终点的位置,以及各路口之间路径到达所需的时间, ...
- HDU 2544最短路 【dijkstra 链式前向星+优先队列优化】
最开始学最短路的时候只会用map二维数组存图,那个时候还不知道这就是矩阵存图,也不懂得效率怎么样 经过几个月的历练再回头看最短路的题, 发现图可以用链式前向星来存, 链式前向星的效率是比较高的.对于查 ...
随机推荐
- B1029 旧键盘 (20 分)
20/20,第一次没调试就过了. #include<bits/stdc++.h> using namespace std; /* 1.standardize 2.put to the se ...
- CodeMirror 小册子
User manual and reference guide version 5.41.1 用户手册和参考指南 CodeMirror is a code-editor component ...
- Java实验报告(实验五)
课程:Java程序设计 班级:1351 姓名:王玮怡 学号:20135116 成绩: 指导教师: ...
- 20135337朱荟潼 Linux第四周学习总结——扒开系统调用的三层皮(上)
朱荟潼 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课http://mooc.study.163.com/course/USTC 1000029000 知识点梳理 一.用 ...
- oracle (+) 什么意思
oracle中的(+)是一种特殊的用法,(+)表示外连接,并且总是放在非主表的一方. 例如左外连接:select A.a,B.a from A LEFT JOIN B ON A.b=B.b;等价于se ...
- 《实时控制软件设计》之Github提交作业步骤
在掌握GIT/GITHUB基本操作后,接下来把第一次的编程作业提交到 https://github.com/RTCSD15/HOMEWORK1 ,把第二次的编程作业提交到https://github. ...
- JMeter学习笔记——认识JMeter(1)
拿到一个自动化测试工具,我们第一步就应该了解它能提供我们哪方面的功能(最直接的方法就是从官网获取),接下来就是简单的对这个工具进行“功能测试”了,当然这里的功能测试不是让你找它存在的bug,而是让自己 ...
- vue,react,angular本地配置nginx 环境单页面应用
一.起因:项目使用VUE,和react.构建单页面应用.在nginx的环境下只有一个index.html入口.这时候默认能够访问到vue,和react 路由 配置中的首页.内部连接也能够跳转但是不能给 ...
- Linux 文件系统介绍
目录 1.Linux 分区简介 2.文件的类型 3.文件的属性与权限 4.直达底部 一.Linux 分区简介 与 windows 通过 盘符管理各个分区不同,Linux把所有设备和文件都当作文件来管理 ...
- [转帖] K8S 常用命令
k8s常用命令 原贴地址 查看集群信息: [root@kubernetes-master pods]# kubectl cluster-info kubectl cluster-info展示结果 k ...