HDU 1874 畅通工程续(最短路)

详解从无人机倾斜实景三维建模→模型修复→成果网络发布展示分享全流程 1、倾斜实景三维建模软件:CC(Smart3D)软件2、实景三维模型网页在线发布展示、分享平台:图新地球网页端(Wish3D·Earth平台)图新地球网页端(Wish3D·Earth平台)是基于 WebGL技术研发的国产实景三维模型Web端发布展示平台,可实现TB级倾斜实景三维数据快速加载,支持多种格式的三维模型,如OSGB实景模型、OBJ人工模型、SKP人工模型、RVT格式BIM模型等,同时支持模型单体化、三维模型测量分析、水面特效、日照分析等特殊效果呈现,此外也可以根据您的需要进行本地化部署级功能定制。 阅读详情

畅通工程续

Problem Description
某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。

现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。
 

Input
本题目包含多组数据,请处理到文件结束。
每组数据第一行包含两个正整数N和M(0<N<200,0<M<1000),分别代表现有城镇的数目和已修建的道路的数目。城镇分别以0~N-1编号。
接下来是M行道路信息。每一行有三个整数A,B,X(0<=A,B<N,A!=B,0<X<10000),表示城镇A和城镇B之间有一条长度为X的双向道路。
再接下一行有两个整数S,T(0<=S,T<N),分别代表起点和终点。
 

Output
对于每组数据,请在一行里输出最短需要行走的距离。如果不存在从S到T的路线,就输出-1.
 

Sample Input
3 3 0 1 1 0 2 3 1 2 1 0 2 3 1 0 1 1 1 2
 

Sample Output
2 -1


【思路分析】 一个裸的求最短路径,其中一个值得注意的坑点就是对于两个结点之间的路径可能会有多次不同的输入,所以要保证输入的是最短的才能满足题意。


代码如下:

floyd算法:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
#define inf 99999999
#define maxn 210
int maps[maxn][maxn];
int n,m;

int floyd(int s,int t)
{
    for(int t = 0;t < n;t++)
        for(int i = 0;i < n;i++)
            for(int j = 0;j < n;j++)
                if(maps[i][j] > maps[i][t] + maps[t][j])
                    maps[i][j] = maps[i][t] + maps[t][j];
    if(maps[s][t] == inf)
        return -1;
    else
        return maps[s][t];
}

int main()
{
    int a,b,x,s,t,ans;
    while(scanf("%d %d",&n,&m) != EOF)
    {
        for(int i = 0;i < n;i++)
            for(int j = 0;j < n;j++)
                maps[i][j] = (i == j ? 0 : inf);
        while(m--)
        {
            scanf("%d %d %d",&a,&b,&x);
            if(x < maps[a][b])//防止多次输入相同路径的不同权值,此处要保证输入权值为最小
                maps[a][b] = maps[b][a] = x;
        }
        scanf("%d %d",&s,&t);
        ans = floyd(s,t);
        printf("%d\n",ans);
    }
    return 0;
}

dijkstra算法:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <queue>
#include <algorithm>
using namespace std;
#define inf 99999999
#define maxn 210
int maps[maxn][maxn],dis[maxn],visited[maxn];
int n,m;
using namespace std;

int dijkstra(int s,int t)
{
    for(int i = 0;i < n;i++)
    {
        dis[i] = maps[s][i];
        visited[i] = 0;
    }
    dis[s] = 0;
    visited[s] = 1;

    int temp,k;
    for(int i = 0;i < n;i++)
    {
        temp = inf;
        for(int j = 0;j < n;j++)
        {
            if(visited[j] == 0 && temp > dis[j])
            {
                k = j;
                temp = dis[j];
            }
        }
        if(temp == inf)
            break;
        visited[k] = 1;
        for(int j = 0;j < n;j++)
        {
            if(dis[j] > dis[k] + maps[k][j])
                dis[j] = dis[k] + maps[k][j];
        }
    }
    if(dis[t] == inf)
        return -1;
    else
        return dis[t];

}

int main()
{
    int a,b,x,s,t,ans;
    while(scanf("%d %d",&n,&m) != EOF)
    {
        for(int i = 0;i < n;i++)
            for(int j = 0;j < n;j++)
                maps[i][j] = (i == j ? 0 : inf);
        while(m--)
        {
            scanf("%d %d %d",&a,&b,&x);
            if(x < maps[a][b])
                maps[a][b] = maps[b][a] = x;
        }
        scanf("%d %d",&s,&t);
        ans = dijkstra(s,t);
        printf("%d\n",ans);
    }
    return 0;
}

SPFA算法:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <queue>
#include <algorithm>
using namespace std;
#define inf 99999999
#define maxn 210
int maps[maxn][maxn];
int visited[maxn],dis[maxn];
int n,m;
queue<int> q;
int spfa(int s,int t)
{
    for(int i = 0;i < n;i++)
    {
         dis[i] = inf;
         visited[i] = 0;
    }
    while(!q.empty())
        q.pop();
    dis[s] = 0;
    visited[s] = 1;
    q.push(s);//起点入队

    while(!q.empty())
    {
        int temp = q.front();
        q.pop();
        visited[temp] = 0;
        for(int i = 0;i < n;i++)
        {
            if(dis[i] > dis[temp] + maps[temp][i])
            {
                dis[i] = dis[temp] + maps[temp][i];
                if(visited[i] == 0)
                {
                    visited[i] = 1;
                    q.push(i);//当前最短距离的点入队
                }
            }

        }
    }

    if(dis[t] == inf)
        return -1;
    else
        return dis[t];
}

int main()
{
    int a,b,x,s,t,ans;
    while(scanf("%d %d",&n,&m) != EOF)
    {
        for(int i = 0;i < n;i++)
            for(int j = 0;j < n;j++)
                maps[i][j] = (i == j ? 0 : inf);
        while(m--)
        {
            scanf("%d %d %d",&a,&b,&x);
            if(x < maps[a][b])
                maps[a][b] = maps[b][a] = x;
        }
        scanf("%d %d",&s,&t);
        ans = spfa(s,t);
        printf("%d\n",ans);
    }
    return 0;
}


PMF5.0计算 EPA PMF5.0 计算步骤 阅读详情

相关推荐

Ubuntu 22.04下GNU Radio 3.10全家桶编译避坑实录:从UHD、VOLK到WiFi收发模块gr-ieee802-11

本文详细介绍了在Ubuntu 22.04系统下编译安装GNU Radio 3.10全家桶的完整流程,包括UHD驱动、VOLK优化库以及WiFi信号处理模块gr-ieee802-11的集成。通过逐步指导解决版本兼容性和依赖问题,帮助研究人员快速搭建高效的软件定义无线电开发环境,特别适合使用USRP设备进行无线通信研究的开发者。

weixin_30825199的博客 447

畅通工程续(ballmen_ford)

不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。每一行有三个整数A,B,X(0

qq_73261465的博客 341

ABAP代码检查(Code Review)

1、SLIN 扩展程序检查 也可通过(SE38工具栏->检查-扩展程序检查) 进入 2、ATC 检查 通过<SE38菜单栏-检查-ABAP测试主控室> 或事物代码SCI, 支持自定义检查变式 SCI可以配置检查变式满足特殊需求,配置对象集用于批量检查 3、通过ABAP测试主控室实现统一管理,定期检查作业和监控功能(事务代码ATC) 参考 SLIN...

u012232542的博客 6063

『杭电1874』畅通工程续 (三种解法 + 代码详细注释)

shua

m0_63613132的博客 308

VS2022如何兼容老项目?.NET Framework 4.0/4.5安装避坑指南

本文提供了在Visual Studio 2022中兼容和维护.NET Framework 4.0/4.5等老旧项目的完整解决方案。针对VS2022无法直接识别旧框架的核心问题,文章详细剖析了原因,并重点推荐通过官方NuGet包安全获取引用程序集的方法,给出了从下载、解压到部署至标准目录的详细步骤。同时,文章还深入探讨了项目文件格式过旧、NuGet包还原失败等进阶问题的排查与解决策略,旨在帮助开发者高效、稳定地在现代开发环境中维护历史代码库。

weixin_27734811的博客 514

OpenCL编译环境配置

在 Linux 系统上配置 OpenCL 开发环境需要安装适当的驱动、运行时和开发工具。

深之JohnChen的专栏 2003

畅通工程续(两种算法)

某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。 现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。 Input 本题目包含多组数据,请处理到文件结束。 每组数据第一行包含两个正整数N和M(0<N<200,0&lt...

墨w的博客 638

Lasso的原理及其与其他特征选择方法的比较进行阐述,然后讨论Lasso优点、缺点以及应用场景,最后给出了代码实例

在机器学习领域中,特征选择(feature selection)是指在模型训练前对数据集进行分析,选择其中有助于预测目标变量或影响模型性能的特征,去除不相关或冗余的特征,提升模型的泛化能力。而Lasso回归是一种很流行的用于特征选择的方法之一。Lasso回归(又称LASSO,least absolute shrinkage and selection operator)是一种线性模型中的特征选择方法。

AI天才研究院 3051

Problem I: 工程

Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。 现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。   Input 本题目包含多组数据,请处理到文件结束。 每组数据第一行包含两个正整数N和M(0&lt...

qq_42079027的博客 256

uniapp [安卓苹果App端] - 实现集成微信一键登录及授权获取用户信息全流程源码,uniApp唤起微信客户端app实现微信授权头像昵称手机号(提供移动应用/开放平台/资质认证/签名/权限申请

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果安卓app,微信一键登录,uniapp项目App端实现微信登录,Uniapp实现微信授权登录,调起微信客户端授权用户信息,uniappapp端微信一键登录打开手机微信app,app端如何唤起用户本机微信应用并授权登陆,如何申请微信一键登录,uniapp实现APP微信登录流程,打开本地微信软件,接入微信登录,UniApp实现微信登录教程,获取头像昵称手机号用户数据,超详细实现微信登录功能,唤起没反应,授权失败,获取

🏆 前端领域优质创作者 1万+

103、模拟增益vs数字增益:信噪比、动态范围与噪声放大的权衡艺术及调试陷阱

摘要 本文深入探讨了模拟增益与数字增益在图像处理中的差异及其对信噪比、动态范围和噪声放大的影响。作者通过实际案例揭示了数字增益可能导致的噪点放大问题,分析了模拟增益在物理层面对信号和噪声的放大机制,以及数字增益对量化噪声的影响。文章详细比较了两种增益方式下信噪比的变化曲线,指出数字增益会平方放大量化噪声的致命缺陷。此外,作者总结了常见的调试陷阱,并提供了针对不同光照场景的增益分配策略建议。最后强调调试时应优先考虑模拟增益,严格控制数字增益幅度,并配合降噪算法优化以获得最佳图像质量。

zzfmlxs的博客 48

畅通工程再续(Prim算法)

畅通工程再续HDU - 1875 目录 畅通工程再续HDU - 1875 题目描述 解题思路 易错分析 AC代码 相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现。现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政府决定实现百岛湖的全畅通!经过考察小组RPRush对百岛湖的情况充分了解后,决定在符合条件的小岛间建上桥,所谓符合条件,就是2个小岛之间的距离不能小于10米,也不能大于1000米。当然,为了节省...

m0_58245389的博客 725

Python爬虫实战:高效爬取Vimeo高清视频

在当今数字化时代,视频内容已成为互联网的重要组成部分。Vimeo作为一个高质量的视频分享平台,拥有大量优质视频资源。然而,Vimeo并未提供直接下载视频的选项,因此,我们需要借助Python爬虫技术来获取这些高清视频。(HTTP Live Streaming)格式存储。Vimeo的视频通常不会直接暴露。Vimeo的视频通常以。

2201_76125261的博客 429

ACM-最短路之畅通工程续——hdu1874

ACM 最短路 畅通工程续 hdu1874 Dijkstra and Floyd

继续激情,继续奋斗。 1858

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【裸单源最短路:Dijkstra算法两种版本】hdu 1874 畅通工程续

Source : hdu 1874 畅通工程续 http://acm.hdu.edu.cn/showproblem.php?pid=1874 Problem Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。 现在,已知起点和

Hacker_vision 1479

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

畅通工程续 HDU - 1874 (最短路模板题)

畅通工程续 HDU - 1874 某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。 现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。 Input 本题目包含多组数据,请处理到文件结束。 每组数据第一行包含两个正整数N和M(0&l...

Suprit's blog 689

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

hdu1874 畅通工程续 最短路

畅通工程续Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案

u013087645的专栏 889

【最短路】【Floyd算法】【模板】 讲解 + 例题 HDU 1874 畅通工程续 【求两点间最短路】

【最短路】【Floyd算法】【模板】讲解 + 例题 HDU 1874 畅通工程续 Floyd算法讲解 适用情况:多源多汇最短路(即求任意两点间的最短路) 复杂度: O(v^3) 思想: DP 通过枚举中间点来优化它的时间复杂度 d[i][j][k]表示从i到j在节点只允许经过[0,k]时的最短距离 a. 如果最短路经过k点,则d[i][j][ k ] = d[i][k][k-...

Floraqiu的博客 2115

HDU-1874 畅通工程续(最短路)

题目链接: https://vjudge.net/problem/HDU-1874 畅通工程续 某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。 现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。 Input 本题目包含多组数据,请处...

Than-的博客 196

hdu1874 畅通工程续 dijkstra 最短路

http://acm.hdu.edu.cn/showproblem.php?pid=1874 目录视图 摘要视图 订阅 Dijkstra算法详解 分类:数据结构与算法2013-08-31 19:0311891人阅读评论(2)收藏举报 dijkstra最短路径 目录(?)[+] ...

200

hdu1874 畅通工程续 最短路

题目地址 : hdu1874

Jingqi@Mr.B的ACM博客 618

HDU 1874畅通工程续(最短路水题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 题目大意:就是最简单的最短路,唯一需要注意的一点就是到达一个城市的路可能有多条,你要选取最短的那条。 代码: #include<bits/stdc++.h> using namespace std; #define inf 0x3f3...

asdfghjkl999999999的博客 146

HDU1874-畅通工程续-最短路

HDU1874-畅通工程续-最短路Description某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。 现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。Input本题目包含多组数据,请处理到文件结束。 每组数据第一行包含两个

君安在AreYouWell 452

HDU 1874 畅通工程续(最短路 Floyd)

原题地址 畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 47922 Accepted Submission(s): 17820 Problem Description 某省自从实行了很多年的畅通工程计

Lulu11235813的博客 458

HDU 1874 畅通工程续【最短路,Dijkstra算法+spfa算法】

畅通工程续 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 45093    Accepted Submission(s): 16740 Problem Description 某省自从实行了很多年的畅通工程计划后

AC_Dreameng 1381

hdu 1874 畅通工程续(最短路)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 思路: 注意重边的情况,养成好习惯~ #include #include #include #include #include #include #include #include #include #include #include #include #i

Where amazing happens 349
上一篇: HDU 1052 Tian Ji -- The Horse Racing
下一篇: HDU 2717 Catch That Cow
Spectacules
博客等级 码龄12年 2粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值