洛谷 P1346 电车(最短路_Floyd)

浅谈五种最短路算法(c++) 最短路问题,说人话就是给定一个图,求两个点之间所有走法中,边权和最短的路的值。总的来说,最短路算法分为5个不同的种类。 floyd 概述 floyed算法是多元最短路的算法(说人话:随便两个点我都能求),主要思想就是只要算的多就一定能做出来。 思路 每次找到一个点k,在遍历所有点,找到一对i,j,d[i][j]=min(d[i][j],d[i][k]+d[k][j]); 例题 题目描述 样例输入 时间复杂度分析 由循环易知,时间复杂度是O(n^3)。(200以上的数据就不要用了) 阅读详情

传送门


每个点向它所联通的点建单向边,开关默认指向的边权为0,其他为1,然后跑最短路(FLoyd,SPFA,Dijkstra均可),由于2<=N<=100,我们用邻接矩阵跑FLoyd就可以了。

Code:

#include<cstdio>
#include<cstdlib>
#include<cstring>

const int INF=1e9;

int a[110][110];
int n,st,ed;

int main()
{
    scanf("%d %d %d",&n,&st,&ed);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
            a[i][j]=INF;
        a[i][i]=0;
    }
    for(int i=1;i<=n;i++)
    {
        int k;scanf("%d",&k);
        for(int j=1;j<=k;j++)
        {
            int x;scanf("%d",&x);
            if(j==1) a[i][x]=0;
            else a[i][x]=1;
        }
    }
    for(int k=1;k<=n;k++)
        for(int i=1;i<=n;i++)
            if(i!=k) for(int j=1;j<=n;j++)
                if(i!=j && k!=j && a[i][k]+a[k][j]<a[i][j]) a[i][j]=a[i][k]+a[k][j];
    if(a[st][ed]==INF) printf("-1");
    else printf("%d",a[st][ed]);
}
从零到一:用CubeMX和485模块快速上手多摩川绝对式编码器(附清零操作详解) 本文详细介绍了如何使用STM32CubeMX和485模块快速上手多摩川绝对式编码器,包括硬件连接、STM32配置、协议解析及清零操作。通过具体的代码示例和调试技巧,帮助开发者高效实现编码器数据读取和清零功能,特别适合STM32单片机开发者参考。 阅读详情

相关推荐

【破局之道】LangChain4j 0.31.0 + Java 8 + Spring Boot:在“过时”环境中构建本地大模型应用的实战指南

本文为使用Java 8和Spring Boot等“过时”技术栈的团队提供了构建本地大模型应用的实战指南。通过采用LangChain4j 0.31.0这一兼容版本,结合Ollama部署本地大模型,开发者无需升级JDK即可在现有项目中快速集成AI能力,实现智能问答、文档摘要等功能,为传统项目注入创新活力。

t4y5u6i7o的博客 557

洛谷P1346电车题解(最短路Floyd)

洛谷P1346题解(最短路--floyd算法)

m0_73913888的博客 434

Vivado ILA调试全攻略:从HDL实例化到Block Design的5个实战技巧

本文全面解析了Vivado集成逻辑分析仪(ILA)的五种核心调试方法,涵盖从HDL代码实例化到Block Design集成的实战技巧。详细对比了不同方法的优缺点与适用场景,并重点介绍了如何利用Debug Hub高效管理多时钟域复杂调试,旨在帮助FPGA开发者精准定位问题,显著提升板级调试效率。

weixin_29214199的博客 376

洛谷P1119 灾后重建(Floyd)

题意: 有n个村庄,村庄间有m条公路,一次地震将连向每个村庄的公路损坏,所以要进行维修,后面有q个询问,问是在第几天的时候从x村庄到y村庄我们是否能到达,如果能到达的最小距离是多少。 典型的多源汇最短问题,我们要采用Floyd算法进行求解。 首先我们先了解一下什么事Floyd算法: g(i,j) 表示节点i到j最短路径的距离,对于每一个节点k,检查g(i,k) +g(k,j) 小于g(i,j) 如果成立,g(i,j) =g(i,k) +g(k,j);遍历每个k,每次更新的是除第k行和第k列.

qq_62224565的博客 694

从符号到基元:Token的技术演化史与“词元”汉化的术语学

中文摘要:Token概念演化与"词元"译名的确立 本文系统梳理了"Token"概念从信息论符号到AI基元的完整演化史,揭示了"词元"这一中文译名确立的必然性。概念发展经历了三个阶段:早期作为编译原理中的词法单元(1960s),统计NLP时期作为概率空间的原子(1990s-2000s),以及神经时代成为动态语义载体(2010s后)。随着Transformer架构兴起,Token从静态符号转变为上下文相关的语义基元,其定义彻底突破"词&quo

AllenLV的博客 1222

如何理解反步法设计控制器?

假设以二阶系统为例,被控对象的系统状态方程为: 基于反步控制的具体方法如下: 1.1步骤一 定义期望状态为xd,状态误差e1,为: e1=x1-xd; 则e1的导数为: 1.2步骤二 定义虚拟控制量为: e2定义为: 1.3步骤三 定义Lyapunov能量函数为: 1.4步骤四 定义总Lyapunov能量函数为: 因此设计的控制律为: 设计c>0,则: 满足Lyapunov的稳定性判定条件...

weixin_42736130的博客 2万+

洛谷模板.Floyd的深度理解(python)

不考虑i==k和j==k的情况(毕竟如果相等,那么edge[i][j]任然等于w或者inf),现在i!=k,那么edge[i][j] = min(edge[i][j], edge[i][k] + edge[k][j]),取值为节点i到j的情况,和节点i到k到j的情况,这里我就简写,i-j 和 i-1-j。edge[i][j] = min(edge[i][j], edge[i][2] + edge[2][j]),这里面存在。的情况,只有这两个吗?如果i和j直接存在路径,那么edge[i][j] = w。

W_extend的博客 502

统信UOS/麒麟Kylin OS下利用pyenv实现Python多版本开发环境搭建指南

本文详细介绍了在统信UOS和麒麟Kylin OS国产操作系统下使用pyenv搭建Python多版本开发环境的完整指南。从系统环境准备、pyenv定制安装到Python版本编译实战,提供了针对国产CPU架构的特殊优化方案和常见问题解决方法,帮助开发者高效管理不同Python版本需求。

sea99的博客 1051

洛谷 1346 电车

题目描述 Description在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能)。在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态。 为了行驶向目标地点,电车司

1050

基于爬虫+词云图+Kmeans聚类+LDA主题分析+社会网络语义分析对大唐不夜城用户评论进行分析

本项目是基于携程网中关于大唐不夜城评论的文本分析,项目中用到了Python爬虫、词频分析、词云图分析、kmeans聚类、LDA主题分析、情感分析、社会网络语义分析等。本次实验我们使用了爬虫、词云图、情感分析、LDA主题分析、TF-IDF+Kmeans、社会网络语义分析等对大唐不夜城的评论进行了分析。关于博文中的源码大家可以关注派森小木屋公众号进入粉丝群领取,如对文章有疑惑,请评论区留言。

m0_64336780的博客 1万+

最新Python爬虫实战(入门爬虫篇)——案例7:电影网站电影数据采集(详细爬虫思路截图+抓包动图演示+完整爬虫代码+详细注释)

本次案例通过Python爬虫技术,成功实现了对某电影网站Top250多页电影详细信息的批量爬取与Excel保存。代码采用模块化设计,包含分页请求构造、XPath+正则提取结构化信息、Excel数据持久化保存等完整流程。通过配置User-Agent等请求头信息,有效模拟浏览器行为以绕过豆瓣基础反爬策略。整个爬虫逻辑遵循"分页遍历 → 请求页面 → 解析HTML → 提取电影信息 → 保存到Excel"的标准流程,与主流静态网站爬取范式高度一致。

努力让自己发光,对的人才能迎着光而来 11万+

洛谷P1346 电车(最短路径问题)

洛谷P1346 电车 原题地址 文章目录洛谷P1346 电车一、题目内容二、解题思路三、注意事项 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目内容 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能)。在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态。

jotaro07的博客 792

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

洛谷P1346 电车【最短路】

题目链接:P1346 电车 程序说明 难点是建图,把每个路口看成一个顶点,每个顶点的第一条边权值设为0,其余边权值设为1,然后求出最短路就行了。由于顶点数n的范围小,可以用Floyd算法来做。 代码如下: #include <iostream> #include <cstring> using namespace std; const int N = 1100; i...

cutlery1137的博客 244

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

洛谷 P1346 电车 Floyed算法模板

洛谷 P1346 电车 最短路 题解: 首先要进行建图,这是一个有向图,把开口的边的权值设为0,没有开口的边的权值设为1。 因为n比较小,可以用dijkstra,也可以用floyed 代码如下: (1)Dijkstra O(n2) #include<iostream> #include<algorithm> #include<stdio.h> #include&...

化身孤岛的鲸o的博客 574

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

洛谷P1346 电车——建模,最短路

题目:https://www.luogu.org/problemnew/show/P1346 分析:将默认通向的边权设为0,手动通向的边权设为1,就成了最短路问题。 AC代码: #include<cstdio> #include<iostream> #include<cstring> using namespace std; int n,x,y,m,a,...

qq_36314344的博客 223

洛谷P1346 电车(floyd)

题目描述 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能)。在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态。 为了行驶向目标地点,电车司机不得不经常下车来切换...

tomjobs的博客 452

【洛谷P1346】电车【floyed最短路】

题目描述 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能)。在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态。 为了行驶向目标地点,电车司机不得不经常下车来切换...

ssllyr 290

【洛谷P1346】 电车

电车 题目链接:电车 题目描述 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能)。在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态。 为了行驶向目标地点,电车...

你...你不要过来啊!!! 377

【最短路】洛谷P1346 电车

题目传送门 解题思路: 关键在于建图。以每个站点为顶点,是否需要转换开关为边建图。之后就求一个最短路即可,这个题求最短路的方法有多种,鉴于数据这么小,那就用最暴力的 floydfloydfloyd吧,下面附上代码。 上代码: #include<bits/stdc++.h> using namespace std; const int N = 110; int g[N][N]; int n; void floyd() { for(int k = 1;k <= n;k++) { fo

小明的博客 203

P1346 电车【洛谷算法习题】

摘要: 题目描述了一个电车轨道系统,每个路口有默认开关指向的轨道,司机需要切换开关才能改变行驶方向。要求计算从起点到终点的最少切换次数。将问题建模为有向图最短路问题:默认轨道边权为0,其他轨道为1。使用Floyd算法求解全源最短路,时间复杂度O(N³)适用于N≤100的数据规模。若起点到终点不可达则输出-1,否则输出最短路径值。代码通过邻接矩阵初始化、构建带权图、三重循环松弛操作及结果判断实现该逻辑。

Pretty Boy Fox的博客 594

P1346 电车(洛谷)

电车 题目描述 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能)。在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态。 为了行驶向目标地点,电车司机不得不经常下车...

蒟蒻こんにゃく 255

【洛谷】P1346电车

【洛谷】P1346电车 题目描述 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能)。在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态。 为了行驶向目标地点,电车司机不得不经常下车来切换开关,于是,他们想请你写一个程序,计算一辆从路口 A 到路口 B 最少需要下车切换几次开

weixin_46975572的博客 140

洛谷P1346 电车

洛谷P1346电车 Floyed最短路做法

llkkyyy的博客 302

P1346 电车(floyd)

洛谷图论训练场的水题 有很多路口,每个路口的开关默认指向一条路,一个路口可能与很多条路相连,也可能存在环 如果你想走其他的路,必须要扳动一次开关,问你从A到B最少扳动几次开关,不能抵达输出-1 首先在某个路口我最多扳动一次开关,否则就走了“回头路”,一定不是最短路 接下来就是裸的floyd,默认指向的那条路边权为0,其他路为1,跑一遍floyd,注意特判无法抵达的情况 代码: ...

aogengbin3685的博客 137

【洛谷P1346】电车【最短路】

题目大意: 题目链接:https://www.luogu.org/problemnew/show/P1346 给出一个图,每条边有一个指定方向,但是如果想从这个点到达其它有通路但不是指定方向的点的话,就要改变指定方向并且花费为1。求从sss到ttt的最小花费。 思路: 这个图没有边权。考虑用指定方向作为边权且跑最短路。 由于如果要到的这个点是指定方向的点的话就不用花费,否则需要花费1...

stoorz 390

[洛谷P1346]电车

题目大意:有n个点,每个点连出一些有向边,每个点的第一条边权值为0,其他边权值为1,求某两点的最短路径。 解题思路:最短路径,由于n才到100,用Floyd乱搞即可。注意可能有点没有连出边(开始时我是k和第一条边连的点一起读入,就挂了TAT)!!时间复杂度$O(n^3)$。 C++ Code: #include<cstdio> #include<cst...

88
上一篇: 洛谷 P1462 通往奥格瑞玛的道路(最短路_SPFA)
下一篇: 洛谷 P1119 灾后重建(最短路_Floyd)
Dawn_LLLLLLL
博客等级 码龄9年 12粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值