7-3 旅游规划 (25 分)(C语言实现)

有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。

输入格式:
输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速公路的条数;S是出发地的城市编号;D是目的地的城市编号。随后的M行中,每行给出一条高速公路的信息,分别是:城市1、城市2、高速公路长度、收费额,中间用空格分开,数字均为整数且不超过500。输入保证解的存在。

输出格式:
在一行里输出路径的长度和收费总额,数字间以空格分隔,输出结尾不能有多余空格。

输入样例:
4 5 0 3
0 1 1 20
1 3 2 30
0 3 4 10
0 2 2 20
2 3 1 20
输出样例:
3 40

这篇没有注释,看不懂代码的移步我的甲级专栏里的1003 Emergency (25 分),那个有详细的注释。

//迪杰斯特拉算法求7-3 旅游规划 (25 分)
#include <stdio.h>
#include <string.h>
#include<stdbool.h>
#define maxn 0x3f3f3f3f
int n;
int L[1001][1001]; //城市之间的距离
int W[1001][1001]; //城市之间的收费
int LL[1001];      //到起点的最近距离
int WW[1001];      //到起点的最近距离的收费
int flag[1001];    //是否走过
void Dijkstra(int x)
{memset(flag, false, sizeof(flag));memset(LL,maxn,sizeof(LL));LL[x] = 0;for (int j = 0; j < n; j++){int u = -1, min = maxn;for (int i = 0; i < n; i++){if (flag[i] == false && LL[i] < min){u = i;min = LL[i];}}if (u == -1)return;flag[u] = true;for (int i = 0; i < n; i++){if (L[u][i] != 0 && flag[i] == false){if (L[u][i] + LL[u] < LL[i]){LL[i] = L[i][u] + LL[u];WW[i] = W[i][u] + WW[u];}else if (L[u][i] + LL[u] == LL[i]){if (WW[u] + W[u][i] < WW[i]){WW[i] = W[u][i] + WW[u];}}}}}
}
int main()
{int m, s, d;scanf("%d %d %d %d", &n, &m, &s, &d);memset(L, maxn, sizeof(L));while (m--){int a, b, l, w;scanf("%d %d %d %d", &a, &b, &l, &w);L[a][b] = l, L[b][a] = l;W[a][b] = w, W[b][a] = w;}Dijkstra(s);printf("%d %d", LL[d], WW[d]);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428856.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机软件专利申请期限,软件发明专利申请期限为何那么长

一、发明专利1.适用范围发明专利申请适用范围较广&#xff0c;不但包括方法、工艺、配方、中西药、计算机软件、电子商务等技术领域&#xff0c;还可包括机械设备、机、电产品等具有立体形状和功能结构的工业品和日用品&#xff0c;但前者只能申请发明专利&#xff0c;后者还可…

Drozer快速使用指南

Drozer快速使用指南 1、简介&#xff1a; Drozer是一款用于测试android应用程序漏洞的安全评估工具&#xff0c;能够发现多种类型的安全的漏洞&#xff0c;免费版本的相关资源下载地址&#xff1a; https://www.mwrinfosecurity.com/products/drozer/community-edition/ 其中包…

7-5 公路村村通 (30 分)(C语言实现)

现有村落间道路的统计数据表中&#xff0c;列出了有可能建设成标准公路的若干条道路的成本&#xff0c;求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数N&#xff08;≤1000&#xff09;和候选道路数目M&#xff08;≤3N&#xff09;&#…

银行招聘网计算机类笔试,中国人民银行计算机类笔试模拟题

银行招聘网(Yinhangzhaopin.com)温馨提示&#xff1a;凡告知“加qq联系、无需任何条件、工作地点不限”&#xff0c;收取服装费、押金、报名费等各种费用的信息均有欺诈嫌疑&#xff0c;请保持警惕。银行招聘网文章标签:银行笔试人民网络齐鲁这是我自己总结的中国人民银行计算机…

Akka(19): Stream:组合数据流,组合共用-Graph modular composition

akka-stream的Graph是一种运算方案&#xff0c;它可能代表某种简单的线性数据流图如&#xff1a;Source/Flow/Sink&#xff0c;也可能是由更基础的流图组合而成相对复杂点的某种复合流图&#xff0c;而这个复合流图本身又可以被当作组件来组合更大的Graph。因为Graph只是对数据…

7-2 地下迷宫探索 (30 分)(C语言实现)

7-2 地下迷宫探索 (30 分) 地道战是在抗日战争时期&#xff0c;在华北平原上抗日军民利用地道打击日本侵略者的作战方式。地道网是房连房、街连街、村连村的地下工事&#xff0c;如下图所示。 我们在回顾前辈们艰苦卓绝的战争生活的同时&#xff0c;真心钦佩他们的聪明才智。在…

计算机软考有学历限制吗,软考中级职称申请积分还需要学历吗?

档案学历都要审&#xff0c;而且社保基数要求大于等于社平工资&#xff0c;我也是用的职称&#xff0c;现在已经受理了&#xff0c;等审批。软考中级证书的作用1、软考中级证书可以帮助评中级职称&#xff0c;可聘任工程师职务&#xff0c;评上了职称对于升职加薪是有好处的。2…

CSS-posiziton

1. 想要实现&#xff0c;”返回顶部”永远位于页面的右下角。需要用到position函数。CSS:层叠样式表。用到了分层的功能。 position:fixed; 永远固定在一个地方。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&…

7-4 哈利·波特的考试 (25 分)(C语言实现)

7-4 哈利波特的考试 (25 分) 哈利波特要考试了&#xff0c;他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha&#xff0c;将老鼠变成鱼的魔咒是hehe等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念&#xff0c;例如aha…

ubuntu下sogou突然不能用

方法一&#xff1a;重启搜狗输入法 通过下面的命令重启搜狗输入法&#xff0c;看重启后是否可以正常使用&#xff1a; ~$ killall fcitx ~$ killall sogou-qinpanel~$ fcitx转载于:https://www.cnblogs.com/gisalameda/p/7424822.html

1016 部分A+B (15 分)

1016 部分AB (15 分) 简单题。 #include<iostream> #include<string> using namespace std; int main() {int a0,b0;string str1,str2;char ch1,ch2;cin>>str1>>ch1>>str2>>ch2;int len1str1.length(),len2str2.length();for (int i0;i&l…

计算机专业的第二批本科大学,第二批本科院校

第二批本科院校篇一&#xff1a;2015年普通高校招生本科第二批投档分数线 篇二&#xff1a;2014全国二本院校排名及介绍全国二本大学排名榜(仅供参考) 名单上海二本&#xff1a;1.上海对外贸易学院(财经类院校总是最热门的&#xff0c;虽然实力一般&#xff0c;但只要将来就业好…

P1049 装箱问题

P1049 装箱问题 题目描述 有一个箱子容量为V&#xff08;正整数&#xff0c;0&#xff1c;&#xff1d;V&#xff1c;&#xff1d;20000&#xff09;&#xff0c;同时有n个物品&#xff08;0&#xff1c;n&#xff1c;&#xff1d;30&#xff0c;每个物品有一个体积&#xff08…

安装TensorFlow

前提&#xff1a;系统centos 6.5 1&#xff0c;走的中文官网的&#xff1a;http://www.tensorfly.cn/tfdoc/get_started/os_setup.html#common_install_problems 2&#xff0c;用了virtualenv&#xff0c;用 pip install https://storage.googleapis.com/tensorflow/linux/cpu/…

怎么用树莓派制作web服务器,用树莓派做web服务器,靠谱吗?

有点想入门树莓派&#xff0c;然后做一个小web服务器&#xff0c;放在学校内网。大家有做过类似的事情吗&#xff1f;做过&#xff0c;自己用做测试的话是没什么问题的&#xff0c;而且非常小巧&#xff0c;携带方便。买的时候注意还要搭配这三个配件1 可以用的无线网卡&#x…

MFC中CString.Format的用法

http://www.cnblogs.com/kongtiao/archive/2012/06/13/2548033.html 在MFC程序中&#xff0c;使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串&#xff0c;也可以处理ANSI标准的字符串。CString的Format方法给我们进行字符串的转换带来了很大…

笔记本如何与其他计算机共享,笔记本电脑怎么和手机共享文件

假如想要用手机打开电脑上大容量的视频或其他文件&#xff0c;但是手机的容量又比较小&#xff0c;该怎么办呢?这个时候&#xff0c;我们就可以在电脑上设置共享文件夹&#xff0c;然后在手机上通过局域网来查看该共享文件夹就可以解决这个问题。那么笔记本电脑怎么和手机共享…

KAFKA 常用命令

转自&#xff1a;http://blog.csdn.net/xiaolang85/article/details/22194571 ##查看topic分布情况kafka-list-topic.sh bin/kafka-list-topic.sh --zookeeper 192.168.197.170:2181,192.168.197.171:2181 &#xff08;列出所有topic的分区情况&#xff09;bin/kafka-list-topi…

opc服务器状态红叉,西门子S7-300与上位机通过OPC服务器的通讯设置分解.pdf

通过PROFIBUS 建立SIMATIC NET OPC 服务器与PLC 的S7 连接一&#xff0e;基本相关信息1. SIMATIC NET PC 软件简介SIMATIC NET 是西门子在工业控制层面上提供给您的一个开放的&#xff0c;多元的通讯系统。它意味着您能将工业现场的PLC、主机、工作站和个人电脑联网通讯&#x…

7-7 汉密尔顿回路 (25 分)(C语言实现)

7-7 汉密尔顿回路 (25 分) 这道题就是问是否是回路&#xff0c;回路满足&#xff1a;1.过所有的点 2.没有返回 #include <string.h> #include <stdio.h> #include <stdbool.h> #define fer for (int i 0; i < m; i) int main() {int n, m;scanf("%…