.柚不幼.love. 2022-05-28 18:58 采纳率: 50%
浏览 154
已结题

城市最短路径(语言-C++)

问题遇到的现象和发生背景

暑假小马想到小张家里去玩,他们住在不同的城市,这是小马第一次去小张家,小马提前在百度地图上面查找行车路线,输入出发城市和目的城市,百度地图计算出最短路径,请实现百度地图计算最短路径的方法。备注:总共有n个(n<=100)城市,小马家所在城市编号为1,小张家所在城市编号为n,公路为双向车道。
输入
第一行两个整数,分别表示城市数量n和公路数量m。
后面m行表示公路情况,每一行三个整数a,b,c,分别表示从城市a到城市b,两个城市之间的公路路程c公里。
输出
最短路程公里数
样例输入1
5 8
1 2 2
1 5 10
2 3 3
2 5 7
3 1 4
3 4 4
4 5 5
5 3 3
样例输出1
我给写了个单向的,双向咋写啊qwq

问题相关代码,请勿粘贴截图
#include<iostream>
#include<cstring>
#include<string>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstdlib>
#include<queue>
#include<deque> 
using namespace std;
int min1 = 999999;
int book[101], n, e[101][101];
void dfs(int cur, int dis) {    
    int j;
    if (dis > min1)
        return;
    if (cur == n) {    
        if (dis < min1) {
            min1 = dis;
        }
        return;
    }
    for (j = 1; j <= 5; j++) {
        if (e[cur][j] != 999999 && book[j] == 0) {
            book[j] = 1;
            dfs(j,dis+e[cur][j]);//从城市j再出发,继续寻找目标城市
            book[j] = 0;    
        }
    }
    return;
}
int main() {
    
    int i, j, m, a, b, c;//a,b 表示城市 c 表示之间的距离,m表示总的道路
    scanf("%d%d",&n,&m);
    //初始化二维矩阵
    for (i = 1; i <= n; i++) {
        for (j = 1; j <= n; j++) {
            if (i == j)
                e[i][j] = 0;
            else 
                e[i][j] = 999999;
        }
    }
    //读入该城市之间的道路
    for (i = 1; i <= m; i++) {
        scanf("%d%d%d",&a,&b,&c);
        e[a][b] = c;
    }
    book[1] = 1;//标记1号城市已经在路径中
    dfs(1,0);
    printf(“%d\n",min1);
    return 0;
}


  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 6月5日
    • 修改了问题 6月3日
    • 修改了问题 5月31日
    • 创建了问题 5月28日

    悬赏问题

    • ¥15 (标签-考研|关键词-set)
    • ¥15 求修改代码,图书管理系统
    • ¥15 请问有没求偏多标签数据集yeast,reference,recreation,scene,health数据集。
    • ¥15 传感网应用开发单片机实训
    • ¥15 Delphi 关于sAlphaImageList使用问题
    • ¥15 寻找将CAJ格式文档转txt文本的方案
    • ¥15 shein测试开发会问些啥我是写java的
    • ¥15 关于#单片机#的问题:我有个课程项目设计,我想在STM32F103veTX单片机,M3主控模块上设计一个程序,在Keil uVision5(C语言)上代码该怎么编译?(嫌钱少我可以加钱,急急急)
    • ¥15 opnet仿真网络协议遇到问题
    • ¥15 在安装python的机器学习程序包scikit-learn(1.1版本)时遇到如下问题