SDUT 2143 - 图结构练习——最短路径(dijkstra+模板)

图结构练习——最短路径(Dijkstra算法) 图结构练习——最短路径 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 给定一个带权无向图,求节点1到节点n的最短路径。 Input 输入包含多组数据,格式如下。 第一行包括两个整数n m,代表节点个数和边的个数。(n<=100) 剩下m行每行3个正整数a b c,代表节点a和节点b之间有一条边... 阅读详情

题目链接


http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/2143.html

题目大意


就是求一个带权无向图的最短路径。

解题过程


之前看啊哈算法学了下dijkstra,然后嫌麻烦一直没用过。现在看了个视频才发现,用优先队列优化后,非常好用,比SPFA还容易写,于是放出来做个模板。

题目分析


略

AC代码


#include<bits/stdc++.h>
using namespace std;

const int MAX = 100+10;

vector<pair<int, int> > edges[MAX];
int d[MAX];

int main()
{
    int n, m;
    while (~scanf("%d %d", &n, &m))
    {
        for (int i = 1; i <= n; i++)
        {
            edges[i].clear();
            d[i] = 1e9;
        }

        for (int i = 0; i < m; i++)
        {
            int u, v, w;
            scanf("%d %d %d", &u, &v, &w);
            edges[u].push_back(make_pair(v, w));
            edges[v].push_back(make_pair(u, w));
        }

        int s = 1, t = n;

        priority_queue<pair<int, int> >q;
        d[s] = 0;
        q.push(make_pair(-d[s], s));

        while (!q.empty())
        {
            int u = q.top().second;
            q.pop();
            for (int i = 0; i < edges[u].size(); i++)
            {
                int v = edges[u][i].first;
                if (d[v] > d[u] + edges[u][i].second)
                {
                    d[v] = d[u] + edges[u][i].second;
                    q.push(make_pair(-d[v], v));
                }
            }
        }

        if (d[t] == 1e9)
            printf("-1\n");
        else
            printf("%d\n", d[t]);
    }
}
手把手教你编写PCIe设备驱动:基于Linux内核的实战教程 本文详细介绍了基于Linux内核的PCIe设备驱动开发全流程,包括环境准备、设备探测、中断处理、DMA配置等核心内容。通过实战代码示例和Makefile编写指南,帮助开发者快速掌握PCIe驱动开发技术,实现高性能设备驱动开发与优化。 阅读详情

相关推荐

SystemVerilog实战:AXI Stream协议从零搭建(附完整代码解析)

本文详细介绍了如何使用SystemVerilog从零搭建AXI Stream协议,包括核心信号解析、接口设计、主从设备实现及验证环境构建。通过完整的代码示例和工程实践技巧,帮助开发者掌握AXI Stream在FPGA/ASIC设计中的高效数据传输方法,特别适合视频处理和网络数据传输等应用场景。

weixin_29207439的博客 360

图结构练习——最短路径(floyd算法(弗洛伊德))

图结构练习——最短路径 Time Limit: 1000ms Memory limit: 65536K有疑问?点这里^_^ 题目描述 给定一个带权无向图,求节点1到节点n的最短路径。 输入 输入包含多组数据,格式如下。 第一行包括两个整数n m,代表节点个数和边的个数。(n<=100) 剩下m行每行3个正整数a b c...

649

IOPaint模型部署教程

IOPaint是一款功能全面且强大的AI图像处理工具,它不仅免费开源,还由SOTA(State-of-the-Art,即最先进)AI模型驱动,为图像编辑和修复带来了前所未有的便利和高效。以下是对IOPaint的详细介绍:

SJJS_1的博客 1543

最短路(dij+优先队列优化)模板

最短路径问题描述 有n个城市,求s到e的最短路径; 当n的值较小时,直接用(dij)算法没有问题,但是当数值较大或者访问过多时就需要优化; dij(算法)时间复杂度(n2); 算法思想:贪心,从起点开始,不断的寻找不同点到起始点的最短距离; ...

fuhaitao9999的博客 686

无GPS室内飞行:基于PX4与MID360的FAST-LIO定点悬停实战解析

本文详细解析了基于PX4飞控与大疆MID360激光雷达的无GPS室内飞行技术,重点介绍了FAST-LIO算法在定点悬停中的应用。通过硬件配置、软件环境搭建、坐标系转换等实战经验,帮助开发者解决室内定位难题,实现精准悬停与稳定飞行。

weixin_29056781的博客 262

Android Profiler 帧率优化实战与性能调优

本文详细介绍了使用Android Profiler进行帧率优化与性能调优的实战方法。通过分析主线程状态、FPS曲线和渲染阶段耗时,精准定位卡顿根源,并提供减少过度绘制、优化绘制命令及改善资源使用的具体策略。文章结合电商、游戏等真实案例,帮助开发者有效解决卡顿问题,提升应用流畅度。

palm99的专栏 536

SDUT2143最短路径

图结构练习——最短路径 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述  给定一个带权无向图,求节点1到节点n的最短路径。   输入  输入包含多组数据,格式如下。 第一行包括两个整数n m,代表节点个数和边的个数。(n 剩下m行每行3个正整数a b c,代表节

smile_kai的博客 470

基于Simulink使用激光雷达数据跟踪车辆仿真(附源码)

这些模型将长方体的尺寸定义为状态转换期间的常量,并且它们的估计值在滤波器的校正阶段随时间演变。下面的动画显示了在滤波器的预测阶段将具有不同概率的恒定速度和恒定转弯率模型混合在一起的效果。此示例显示了如何使用带有 IMM 过滤器的 JPDA 跟踪器来跟踪使用激光雷达传感器的对象。图像和激光雷达数据读取器从 MAT 文件中读取记录的数据,并分别输出参考图像和点云中点的位置。跟踪器块选中“启用所有轨道输出”和“启用可检测的跟踪 ID 输入”复选框,以从跟踪器输出所有轨道,并将其检测概率作为其状态的函数进行计算。

珞瑜的博客 2566

dijkstra + 优先队列 最短路 [sdut 2143]

题目描述:最短路裸题分析: 本身是一道裸题,这次用优先队列做一下dijkstra。也get到了有限队列各种姿势的排序方式,分享一下: priority_queue <int> que 这样默认是从大到小排的 priority_queue <int, vector<int>, less<int>> que priority_queue <int, vector<int>, greater

sdutstudent的博客 357

用 CL_SALV_TREE 把层级数据做成一棵会呼吸的 ABAP ALV 树:从类继承扫描到事件交互的完整拆解

本文介绍了SAP ABAP中使用CL_SALV_TREE实现树形ALV报表的方法。该技术将层级数据(如类继承关系)以可展开/折叠的树形结构展示,解决了传统ALV Grid无法直观显示层次结构的问题。核心实现采用"数据表+层级表"分离的设计模式:数据表存储节点业务信息,层级表维护父子关系。通过add_node方法动态构建树形结构,支持设置节点文本、图标和事件。文中提供了完整示例代码,演示了如何递归扫描ABAP类继承关系并构建树形ALV,这种技术特别适用于展示类族谱、权限树等层级数据,能显著

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 206

AI测试干货:Claude Code Skill 从入门到精通

本文介绍了Claude Code Skill功能如何解决AI重复工作问题。传统提示词方式需要人工复制粘贴,而Skill功能通过建立AI工作记忆库实现智能触发和分层加载。Skill包含工作指令、文档和资源,能自动执行任务。文章以API测试用例生成为例,展示了Skill的创建流程和结构化设计,包括测试框架、覆盖场景和输出格式,显著提升测试工程师的工作效率。

blues_C的博客 2442

sdut2143图结构练习——最短路径

从书上大体看了看思想 然后照着模板打 由于没考虑重边的问题WA一次 Dijkstra算法 View Code 1 #include<stdio.h> 2 #include<string.h> 3 int w[101][101]; 4 #define INF 0x3f3f3f3f 5 int main() 6 { 7 int ...

weixin_30247159的博客 102

ros_gz_bridge__镜像__readme

Run。

1113

优先队列优化Dijkstra算法

普通的Dijkstra算法复杂度为n平方,当数据量稍大时就会超时,所以诞生了时间复杂度为nlogn的优先队列优化的Dijkstra算法。 原来版本有大量时间浪费在通过邻接矩阵找边和搜索当前最短路径中,而优化后的算法中,用结构体Edge存储边信息,省却了找有效边的麻烦。而且采用优先队列,可以快速找到最短路径,又省却一部分时间,所以在时间上具有极强的优越性。 贴一份代码,看输入部分代码相信应该可以看

Maybemust的博客 4159

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

图结构练习——最短路径(Dijkstra优化模板)

图结构练习——最短路径 Description 给定一个带权无向图,求节点1到节点n的最短路径。 Input 输入包含多组数据,格式如下。 第一行包括两个整数n m,代表节点个数和边的个数。(n<=100) 剩下m行每行3个正整数a b c,代表节点a和节点b之间有一条边,权值为c。 Output 每组输出占一行,仅输出从1到n的最短路径权值。(保证最短路径存在) Sample Input 3 2 1 2 1 1 3 1 1 0 Output 1 0 #include <bits/stdc++.

Ditto_xff的博客 294

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

HDU-2544 最短路 Dijkstra模板题

题目链接:https://vjudge.net/problem/HDU-2544 题意: 题目要求找到节点1到节点n之间的一条最短路 分析: Dijkstra模板题 单源最短路径,可以用dijkstra(当然Floyd或者其他也可以),首先初始化节点间距离数组map和访问记录数组vis,然后录入并存储当前已知点间距离,再使用dijsktra算法以起始点为中心向外层层扩展(广度优...

weixin_30596343的博客 210

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

图结构练习——最短路径

图结构练习——最短路径 Time Limit: 1000MS Memory limit: 65536K 题目描述  给定一个带权无向图,求节点1到节点n的最短路径。   输入  输入包含多组数据,格式如下。 第一行包括两个整数n m,代表节点个数和边的个数。(n 剩下m行每行3个正整数a b c,代表节点a和节点b之间有一条边,权值为c。

628

图结构练习——最短路径(Dijkstra)

图结构练习——最短路径 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description  给定一个带权无向图,求节点1到节点n的最短路径。   Input  输入包含多组数据,格式如下。 第一行包括两个整数n m,代表节点个数和边的个数。(n&lt;=100) 剩下m行每行3个正整数...

RuMR的博客 690

SDUT补图

补图Time Limit: 1000 ms Memory Limit: 65536 KiBSubmit StatisticProblem Description题目给出一个无向图,求该无向图关于完全图的相对补图,并求该补图的最大度和最小度。方便起见,用邻接矩阵表示该无向图。无向图的节点数不少于2并且不超过500.Input多组输入,每组输入第一行是无向图中节点的数量即邻接矩阵的行列数n。接下来n行...

CHEN_ZAN_YU的博客 1035

图论——并查集

/* 并查集模板 by:mfcheer */ #include #include #include #include #include #include #include #include #include using namespace std; #define N 100010 int n, m; int fa[N]; int

mfcheer 879

**图结构练习——最短路径**

图结构练习——最短路径 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 给定一个带权无向图,求节点1到节点n的最短路径。 Input 输入包含多组数据,格式如下。 第一行包括两个整数n m,代表节点个数和边的个数。(n&lt;=100) 剩下m行每行3个正整数a b c,代表节点a和节点b之间有一条边...

just do 691

王道机试练习——最短路径最短花费

王道机试练习——最短路径最短花费 题目描述 给你 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<100

xyzxyzxyz1999的博客 223
上一篇: SDUT 2622 - 最短路径(SPFA+二维)
下一篇: webpy服务器(Linux+Web+HTML)
ACM_Fish
博客等级 码龄10年 69粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值