/****************************************
题目描述:
给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。
输入:
输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;起点s,终点t。n和m为0时输入结束。
(1<n<=1000, 0<m<100000, s != t)
输出:
输出 一行有两个数, 最短距离及其花费。
样例输入:
3 2
1 2 5 6
2 3 4 5
1 3
0 0
样例输出:
9 11
*********************************************************/
#include <iostream>
#include <cstring>
#include <fstream>
#include <algorithm>using namespace std;const int N = 1000 + 10;
const int M = 100000 + 10;
const int INF = 100000000;int n, m;
int s, t;
int f[N][N];
int cost[N][N];
bool vis[N];
int d[N], c[N];void dijstra();int main()
{#ifndef ONLINE_JUDGEifstream cin("d:\\OJ\\uva_in.txt");
#endif // ONLINE_JUDGEwhile (cin >> n >> m) {if (n == 0 && m == 0)break;fill(&f[0][0], &f[N][0], INF);fill(&cost[0][0], &cost[N][0], INF);while (m--) {int u, v;cin >> u >> v;cin >> f[u][v] >> cost[u][v];f[v][u] = f[u][v];cost[v][u] = cost[u][v];}cin >> s >> t;dijstra();cout << d[t] << " " << c[t] << endl;}return 0;
}void dijstra()
{int x;fill(vis, vis + n, false);for (int i = 1; i <= n; i++) {d[i] = (i == s) ? 0 : INF;c[i] = (i == s) ? 0 : INF;}for (int i = 1; i <= n; i++) {int min = INF;for (int j = 1; j <= n; j++) {if (!vis[j] && d[j] < min) {min = d[j];x = j;}}//cout << "x:" << x << endl;vis[x] = 1;for (int j = 1; j <= n; j++) {if (d[j] > d[x] + f[x][j])d[j] = d[x] + f[x][j];//cout << "d[j]:" << d[j] << endl;if (c[j] > c[x] + cost[x][j])c[j] = c[x] + cost[x][j];//cout << "c[j]:" << c[j] << endl;}}
}

题目1008:最短路径问题相关推荐

  1. 题目1008:最短路径问题(SPFA算法)

    问题来源 http://ac.jobdu.com/problem.php?pid=1008 问题描述 给定一个G(V,E)有向图,起点s以及终点t,求最短路径. 问题分析 典型的单源最短路径问题,可以 ...

  2. 九度oj题目1008:最短路径问题

    题目描述: 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的. 输入:                 ...

  3. 九度-1008 最短路径

    题目描述: 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的. 输入: 输入n,m,点的编号是1~n, ...

  4. 南邮计算机科学与技术专业本科2014级课程设计II题目

    本科2014级 专业课程设计II 题目1 题目1--驾校学员驾考成绩管理系统 课题描述 设计一个驾校学员的驾考成绩管理系统,成绩管理信息包括:考试人员编号(001,002......),姓名,理论考试 ...

  5. C++课程设计《最短路径》

    C++课程设计<最短路径> 课程设计<最短路径> 课程设计题目: 最短路径 实验设计目的与要求: 2.1 目的: 1)熟练应用C++的基本知识.技能.通过本课程设计,总结C++ ...

  6. HDU 3790 最短路径问题 裸跑dijkstra

    原题: http://acm.hdu.edu.cn/showproblem.php?pid=3790 题目: 最短路径问题 Time Limit: 2000/1000 MS (Java/Others) ...

  7. 1491: [NOI2007]社交网络

    1491: [NOI2007]社交网络 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 881  Solved: 518 [Submit][Status ...

  8. UVA - 1604Cubic Eight-Puzzle立体八数码

    题意:有8个立方体,按相同颜色着色,相对面是相同颜色,按同一方向摆成3*3的方阵.问从初始状态到目标状态最少移动步数. 分析:题目是最短路径题,可以bfs可以回溯,用回溯加剪枝.不能走的格子是上次走的 ...

  9. BFS - 20190206

    1.二叉树 BFS 2.拓扑排序  重点 BFS 3.棋盘上的宽搜  BFS 图的遍历 层级遍历,由点及面,拓扑排序,简单图的最短路径 如果题目问最短路径:可能是BFS或者DP, 最长路径:DFS q ...

最新文章

  1. HarmonyOS 修改App 的name
  2. 解决tensorflow报错:AttributeError: module ‘tensorflow.keras.backend‘ has no attribute ‘get_session‘ 问题
  3. mysql 5.7重新设置密码_mysql 5.7 安装及修改/重置密码
  4. 深度学习核心技术精讲100篇(五十六)- 自动驾驶感知技术的实践与探索
  5. Machine Learning on Spark—— 统计基础(一)
  6. 服务性服务–服务到服务的通话
  7. OpenStack_I版 1.准备过程
  8. 前端学习(1034):jquery插件-全屏滚动
  9. 现在学生物出路真有那么不济吗?
  10. pytorch核心模块
  11. 【报告分享】bilibili 2020品牌营销手册.pdf(附下载链接)
  12. linux抓取snmp trap告警命令,linux snmptrap的发送与接收
  13. 中小型企业网络构建(思科)
  14. 真心推荐8个高质量Java学习网站,一起从入门到精通java语言,大厂java面试真题分享,建议码住!...
  15. 主流浏览器发展史及其内核初探
  16. spring cloud 实现服务不间断
  17. 【JS Web 前端知识库】6.说一说BFC
  18. 跨域请求传递Cookie
  19. JS的正则表达式及详解
  20. OpenCV 陷波滤波器消除周期性噪音 C++

热门文章

  1. 什么样的python程序员好找工作-Python学到什么程度才可以去找工作?掌握这4点足够了!...
  2. python中文件读写位置的作用-Python中文件的读写、写读和追加写读三种模式的特点...
  3. 不从事编程、学python有用吗-为什么你觉得C语言什么都不能做,学了没用?不可能的...
  4. 用python的turtle画炫酷的图-使用Python的turtle画炫酷图形
  5. python matplotlib散点图-python的matplotlib散点图
  6. python中国大学排名爬虫写明详细步骤-python中国大学排名爬虫
  7. python手机版怎么用-手机怎么运行python
  8. python学习音频-Python学习笔记--音频处理
  9. python数字类型-Python数字类型有哪些
  10. python中文解释-python注释不能识别中文