【Floyd求最短路+快速幂】PKU-3613-Cow Relays

基于Java17、SpringBoot、vue3、antdv-next、uniapp等主流技术构建的全场景极速开发平台 MDP内置3个web端、1个移动端 重点解决用户中心、开发者平台、管理后台3个应 MDP-主数据平台,后端项目。专注于单点登录解决方案。内置用户中心、开发者平台、管理后台3个应用。包含:单点登录、Oauth2 登录、用户身份管理、应用申请、应用接入、主数据维护、主数据订阅、主数据广播、应用接口调用、接口管理管理和查看、系统配置等功能。 立即下载

这题很好的综合了图论和数论的知识来解题,这种转化综合的思维我要好好地加强训练才行……其实这里明白到一点就可以很好地知道它们之间是怎么转化的,当map[i][j]表示i到j的最短路径,map[j][k]表示j到k的最短路径,且是经过n条路时,那么i到k的最短距离且经过2*n条路就一定是map[i][j]+map[j][k]了!

题目

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
#define inf 1000000000
#define N 205
int n,num,map[N][N],dis[N][N];           //dis[i][j]表示从i到j经过k条路的最短距离
void slove()
{
    while(n)
    {
        int ans[num][num];
        if(n&1)
        {
            for(int i=0;i<num;i++)
            {
                for(int j=0;j<num;j++)
                {
                    ans[i][j]=inf;
                }
            }
            for(int i=0;i<num;i++)
            {
                for(int j=0;j<num;j++)
                {
                    for(int k=0;k<num;k++)
                    {
                        ans[i][k]=min(ans[i][k],dis[i][j]+map[j][k]);
                    }
                }
            }
            for(int i=0;i<num;i++)
            {
                for(int j=0;j<num;j++)
                {
                    dis[i][j]=ans[i][j];
                }
            }
        }
        for(int i=0;i<num;i++)
        {
            for(int j=0;j<num;j++)
            {
                ans[i][j]=inf;
            }
        }
        for(int i=0;i<num;i++)
        {
            for(int j=0;j<num;j++)
            {
                for(int k=0;k<num;k++)
                {
                    ans[i][k]=min(ans[i][k],map[i][j]+map[j][k]);
                }
            }
        }
        for(int i=0;i<num;i++)
        {
            for(int j=0;j<num;j++)
            {
                map[i][j]=ans[i][j];
            }
        }
        n>>=1;
    }
}
int main()
{
    //freopen("a.txt","r",stdin);
    int t,s,e;
    while(scanf("%d%d%d%d",&n,&t,&s,&e)!=EOF)
    {
        int vis[5*N];
        memset(vis,-1,sizeof(vis));
        for(int i=0;i<N;i++)
        {
            for(int j=0;j<N;j++)
            {
                map[i][j]=dis[i][j]=inf;
                dis[i][i]=0;
            }
        }
        num=0;
        while(t--)
        {
            int l,x,y;
            scanf("%d%d%d",&l,&x,&y);           
            if(vis[x]==-1)vis[x]=num++;           //连续化节点编号
            if(vis[y]==-1)vis[y]=num++;
            map[vis[x]][vis[y]]=map[vis[y]][vis[x]]=l;
        }
        slove();
        printf("%d\n",dis[vis[s]][vis[e]]);
    }
    return 0;
}


科技中介服务机构想要提升服务效率,需要哪些数智工具支持?.docx 科技中介服务机构想要提升服务效率,需要哪些数智工具支持? 立即下载

相关推荐

usb 扩容盘检测修复工具源码,编译产物

usb 扩容盘检测修复工具源码,编译产物

[边数限制最短路 倍增floyd 矩阵优化]Cow Relays G

[边数限制最短路 倍增floyd 矩阵优化]Cow Relays G 题目 思路 边数限制的最短路?bellman_ford可以拿来解决边数<=k的最短路,但这题是边数恰好为k,可以通过奇妙操作改成恰好经过k条边(但我不会)。 这里写倍增floyd解法(只是看着像floyd,但本质不一样) 原本floyd的dp为 dp[k][i][j]表示i到j经过点1~k最短路径为多少(通过编号确定,不能处理负环)dp[k][i][j]表示i到j经过点1~k最短路径为多少(通过编号确定,不能处理负环)dp[k][

鱼竿钓鱼干 399

融合UWB和IMU割草机定位EKF研究(Matlab代码实现)

内容概要:本文主要介绍了一个名为“Plecs全桥LLC谐振变换器仿真模型”的技术资源,该资源聚焦于电力电子领域中的LLC谐振变换器建模与仿真,涵盖开环、闭环控制、软启动设计及参数优化等核心内容。文档不仅提供了LLC变换器的详细建模方法与仿真案例,还系统梳理了其在高效电源转换系统中的应用,包括隔离型全桥拓扑结构的设计与性能分析。此外,资源汇总了大量Matlab/Simulink仿真模型及相关科研方向,涉及新能源并网、储能控制、电机驱动等多个前沿领域,全面展示LLC谐振变换器在现代电力系统中的关键技术实现路径。同时,文档附带多种学习资料获取途径,如网盘链接和公众号资源,便于研究人员深入实践与拓展研究。; 适合人群:具备扎实的电力电子、自动控制理论基础,从事新能源发电、开关电源设计、电力系统仿真等相关领域的研究生、工程师及科研人员。; 使用场景及目标:①深入理解LLC谐振变换器的工作原理、建模方法与控制策略;②开展电力电子变换器的仿真验证与参数优化设计;③支撑科研项目、学位论文或工程项目的系统仿真与方案验证; 阅读建议:建议结合所提供的仿真模型与参考文献,使用Plecs或Simulink软件进行动手实践,重点掌握LLC谐振变换器的建模流程、闭环控制设计、软启动机制及参数调试技巧,以全面提升在实际工程中的应用与创新能力。

快速幂详解

前言 学杨辉三角的时候偶然看到了这个东西,然后应AJAJAJ做一题写一篇博客的要求,我就补发了这篇博客 引入 补充概念(乘方、幂、底数、指数) 求nnn个相同因数的积的运算叫做乘方,乘方的结果叫做幂,例如 23=2∗2∗2=823=2∗2∗2=82^3=2*2*2=8 34=3∗3∗3∗3=8134=3∗3∗3∗3=813^4=3*3*3*3=81 乘方中有几个基本定理在后续中会...

Ajwallet 764

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)内容概要:本文主要介绍了基于Plecs的全桥LLC谐振变换器仿真模型,涵盖变频控制下的多相交错LLC谐振变换器闭环仿真、V2G电动汽车ACDC整流与双向CLLC谐振变换器充放电仿真、LLC谐振变换器的开环与闭环软启动设计,以及储能系统中双向Buck-Boost变换器结合模型预测电流控制和电压下垂控制的仿真研究。同时,文档列举了多种电力电子系统与控制策略的Simulink/Plecs仿真案例,涉及三相交错并联Buck变换器、三电平Buck直流变换器、单相Boost PFC电路等,展示了丰富的电力变换器建模与控制技术。此外,还包括参数设计报告、计算书及相关参考文献,适用于从事电力电子、新能源发电、电动汽车充放电系统等领域的研究人员和技术开发人员。; 适合人群:具备电力电子、自动控制理论基础,从事新能源、电动汽车、电力系统等相关领域研究的研发人员、高校研究生及高年级本科生。; 使用场景及目标:① 学习和掌握LLC谐振变换器及其他典型电力电子变换器的工作原理与建模方法;② 实现闭环控制策略如变频控制、软启动、模型预测控制、下垂控制等的仿真验证;③ 支持科研项目、毕业设计或工程开发中的系统仿真与优化设计。; 阅读建议:建议结合文中提供的仿真模型、设计报告与参考文献,逐步搭建并调试相应系统,重点关注控制策略的实现细节与参数整定过程,以深入理解系统动态响应特性与控制性能。

连接HP C7000 OA管理口操作文档

必备工具:1台便携式笔记本电脑、1根网线 2、 在C7000机箱背面找到 OA管理模块,如图:图标1和2为OA主备管理模块 将网线一端接至左边的OA管理网口,另一端接至便携式笔记本电脑网口,如图下位置: 在C7000液晶面板下查看OA管理口地址,如图,按下液晶面板的OK按钮 然后按下▼按钮调至Enclosure Info这一项后,按下OK按钮,输出界面如图:可以看到当前Active的OA管理口IP地址 比如显示地址为172.16.25.30,则个人笔记本电脑则配置172.16...

马晓援的博客 6013

POJ3613 Cow Relays 倍增floyd求最短路

第十届河南省赛I题~ 题意:从起点S,到终点E,跳上N次,花费的最小值是多少 其中全图有M条边,表示从A点到B点花费L值 首先注意到这个题点的标号不是常规的1到n,不是连续的,可以重新对点进行标号 图论题,最短路径问题首先想模板,因为点数少,所以floyd:n^3可以求出任意两点之间的最短路径 这个题的最大问题是:跳上N次(N最大是1e6) 挑战程序设计竞赛里面

ACdream 429

halcon C++编程 第4讲 HObject/HImage Mat相互转换(tcy)

网上有很多相互转换程序,但并不知那个正确,本文对相互转换后的结果和原对象比较是否相同判断转换是否正确。经测试ok.本文包括转换代码及测试是否相同。 1.转换程序: /************************************ HObject转为Mat:time:2021/3/16 V1.0 *************************************/ cv::Mat HalconClass::HObjectToMat(const HalconCpp::HObject&..

tcy-阿春 4934

pku 3613 Cow Relays【Floyd+快速幂】

Floyd和矩阵乘法(快速幂的变形) 第k次做Floyd,B[i][j]表示经过k步的最短路。 C[i][j] = min(A[i][k] + B[k][j]), 1<=k<=n,进行迭代。 比较好的一个题目,加深了对图路径的理解。 #include <stdio.h> #include <string.h> #incl...

dechi5213的博客 129

大红球预警版-精选+自定义板块监控

这是一款简单易用的股票大单资金监控插件,兼容通达信软件,可嵌入分时图或定制版面。它以红绿圆球直观显示主力买卖情况(红球为买,绿球为卖),支持300万以上大单语音播报。插件提供实时资金流向分析、多股同时监控、自定义预警条件等功能,无需L2账号。用户可自由切换图形/列表模式,监控特定板块,并配合幻影软件实现自动交易。虽然上涨股通常红球占优,但需结合其他指标综合判断。该插件完全免费,包含详细视频教程,适合新手使用。

guleba的博客 1795

微信小程序转发功能异常报错 由于小程序违规分享功能暂时无法使用的解决办法

小程序右上角转发功能被封,不代表你违规了,而可能是你没认证、没备案!很多功能都是“先合规、后开发”,踩坑就晚了,别像我一样绕了三圈才发现问题。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2615

PKU 3613 Cow Relays (指定路径条数的最短路)

题意:N,T,S,E:给你T条边,每条边两端都有编号和权值,问从S走到E允许走N条边,求最短路。 foyld加矩阵快速幂思想。 注意要把边离散 #include #include #include #include using namespace std; #define M 303 #define inf 0x3fffffff struct node {

不吸血的Vampire 651

【变化检测】变化检测相关数据集+代码+论文合集

光学影像变化检测领域数据集(有label的,无label的)、高光谱影像变化检测领域数据集、3D变化检测领域数据集、传统变化检测算法、深度学习变化检测算法、SAR变化检测算法、高光谱变化检测算法论文及代码等资源。

向上生长的程序媛的博客 2089

PKU3613(Cow Relays)-K步最短路,矩阵连乘

K步最短路,矩阵连乘

始往流离,终彼成章。 2161

架构师之HBase vs MongoDB 技术选型与场景决策实战案例

面对海量数据和高并发查询,该选 HBase 还是 MongoDB?本文为你提供完整的决策框架!从数据模型对比、架构解析、六大真实场景(电信 CDR、金融行情、广告点击流、电商商品、社交档案、内容管理)到性能、一致性、运维全面对比,助你在 PB 级时序数据和灵活查询之间做出精准选择!

肖哥弹架构博客 1102

【异常】Error loading ASGI app. Could not import module ‘main‘

出现或。

奶爸的编程之路,也就一周冷个三天 1855

POJ 3613 Cow Relays

Cow Relays Time Limit: 1000ms Memory Limit: 65536KB This problem will be judged onPKU. Original ID:361364-bit integer IO format:%lld Java class name:Main For their physica...

weixin_30580943的博客 151

自动驾驶系统研发系列—全智能驾驶新高度:深入解析车道保持辅助(ELK)功能

车道保持辅助系统(ELK)是一种基于先进视觉感知技术的主动安全系统,能够通过车载摄像头实时监测道路上的车道线、道路边缘以及周围车辆的位置。这一功能的核心在于为驾驶员提供智能化的安全辅助,尤其是在驾驶员可能因疲劳、分心或其他原因无意识地偏离车道时,系统能够主动干预,从而避免危险发生。ELK系统不仅仅依靠摄像头对道路进行感知,还结合其他传感器的数据(如雷达),实时评估自车与车道线、周边车辆的相对位置。当系统检测到车辆即将偏离车道,或越过道路边缘时,ELK会通过控制电子助力转向系统(EPS)

u013889591的专栏 1211

【双连通分量(tarjan)+树形dp】HDU-2242-考研路茫茫——空调教室

重拾tarjan第一题,不过这题还要用到树形dp……所以是一道很好的综合简单题…… 题目 #include #include #include #include using namespace std; template T Max(T x,T y){return x>y?x:y;} template T Min(T x,T y){return x<y?x:y;} #define N 10

AndRing的专栏 2441

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

蓝牙模块HM-10手册

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

【Havel-Hakimi定理】PKU-1659-Frogs' Neighborhood

1,Havel-Hakimi定理主要用来判定一个给定的序列是否是可图的。 2,首先介绍一下度序列:若把图 G 所有顶点的度数排成一个序列 S,则称 S 为图 G 的度序列。 3,一个非负整数组成的有限序列如果是某个无向图的序列,则称该序列是可图的。 4,判定过程:(1)对当前数列排序,使其呈递减,(2)从S【2】开始对其后S【1】个数字-1,(3)一直循环直到当前序列出现负数(即不是可图的情

AndRing的专栏 962

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【tarjan求割边】PKU-3694-Network

先给出一个图,然后一次增加一些边,问在每条边增加后桥的数目是多少……因为是刚刚接触有关割的知识不久,所以都是模范人家的代码的,而且网上都是最朴素的代码,加上自己的水,所以时限5000ms的题跑出了3000+ms,真是悲剧啊! 题目 #include #include #include #include using namespace std; #define N 100005 vector

AndRing的专栏 958

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【tarjan算法求割点】PKU-1523-SPF

其实题目的数据不够规范,因为它的点可能不连续,而且数据里面一定有根节点1,这个在题目里体现不了! 题目 #include #include #include #include #include using namespace std; #define N 1005 vector vec[N]; int step,low[N],dfn[N],blg[N]; void add(int x,int

AndRing的专栏 926

【Floyd求无向图的最小环】PKU-1734-Sightseeing trip

Floyd算法就是通过n次枚举中间点k来使i到j的距离松弛为最短,而本题就是在枚举k的时候找环,具体思路见代码! 题目 #include #include #include using namespace std; #define inf 999999 #define N 105 int n,len,ans,map[N][N],dis[N][N],post[N][N],path[N]; v

AndRing的专栏 765

【tarjan求双连通分量】PKU-3177&3352

PKU上几乎一模一样的两道题,都是用tarjan来求双连通分量,唯一不同的就是3177会有重边的情况,而3352不会有,所以在加了判断重边之后的代码在两题提交都能过。 题目: 3177 3323 大神题解:点击打开链接 #include #include #include #include using namespace std; #define N 5005 vector

AndRing的专栏 717

【综合图论】PKU-2942-Knights of the Round Table

综合性很强的一道图论题,用到了补图,双连通分量,二分图等几个知识点,这里有某位大牛的神解题报告点击打开链接。 题目 #include #include #include #include #include using namespace std; #define N 1005 vector vec[N],lin[N]; stack sta; int n,step,cnt,ans,low[N

AndRing的专栏 567
上一篇: 【矩阵快速幂相乘求Fibonacci 数列】PKU-3070-Fibonacci
下一篇: 【dp】HUST-1351-Group
AndRing
博客等级 码龄15年 5粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值