首页 > 其他分享 >6343.前往目标的最小代价-343

6343.前往目标的最小代价-343

时间:2023-04-30 21:35:46浏览次数:51  
标签:6343 target 路径 startX start specialRoads 343 代价

前往目标的最小代价

给你一个数组 start ,其中 start = [startX, startY] 表示你的初始位置位于二维空间上的 (startX, startY) 。另给你一个数组 target ,其中 target = [targetX, targetY] 表示你的目标位置 (targetX, targetY) 。

从位置 (x1, y1) 到空间中任一其他位置 (x2, y2) 的代价是 |x2 - x1| + |y2 - y1| 。

给你一个二维数组 specialRoads ,表示空间中存在的一些特殊路径。其中 specialRoads[i] = [x1i, y1i, x2i, y2i, costi] 表示第 i 条特殊路径可以从 (x1i, y1i) 到 (x2i, y2i) ,但成本等于 costi 。你可以使用每条特殊路径任意次数。

返回从 (startX, startY) 到 (targetX, targetY) 所需的最小代价。

示例 1:

输入:start = [1,1], target = [4,5], specialRoads = [[1,2,3,3,2],[3,4,4,5,1]]
输出:5
解释:从 (1,1) 到 (4,5) 的最优路径如下:

  • (1,1) -> (1,2) ,移动的代价是 |1 - 1| + |2 - 1| = 1 。
  • (1,2) -> (3,3) ,移动使用第一条特殊路径,代价是 2 。
  • (3,3) -> (3,4) ,移动的代价是 |3 - 3| + |4 - 3| = 1.
  • (3,4) -> (4,5) ,移动使用第二条特殊路径,代价是 1 。
    总代价是 1 + 2 + 1 + 1 = 5 。
    可以证明无法以小于 5 的代价完成从 (1,1) 到 (4,5) 。
    示例 2:

输入:start = [3,2], target = [5,7], specialRoads = [[3,2,3,4,4],[3,3,5,5,5],[3,4,5,6,6]]
输出:7
解释:最优路径是不使用任何特殊路径,直接以 |5 - 3| + |7 - 2| = 7 的代价从初始位置到达目标位置。

提示:

start.length == target.length == 2
1 <= startX <= targetX <= 105
1 <= startY <= targetY <= 105
1 <= specialRoads.length <= 200
specialRoads[i].length == 5
startX <= x1i, x2i <= targetX
startY <= y1i, y2i <= targetY
1 <= costi <= 105

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/minimum-cost-of-a-path-with-special-roads
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路

图的最短路问题。

code

标签:6343,target,路径,startX,start,specialRoads,343,代价
From: https://www.cnblogs.com/huangxk23/p/17365800.html

相关文章

  • 6344. 字典序最小的美丽字符串-343
    字典序最小的美丽字符串如果一个字符串满足以下条件,则称其为美丽字符串:它由英语小写字母表的前k个字母组成。它不包含任何长度为2或更长的回文子字符串。给你一个长度为n的美丽字符串s和一个正整数k。请你找出并返回一个长度为n的美丽字符串,该字符串还满足:在字......
  • 正则表达式引发的惨痛代价
    关注Java后端技术栈“回复“面试”获取最新资料案例在一次小型项目开发中,我遇到过这样一个问题。为了宣传新品,我们开发了一个小程序,按照之前评估的访问量,这次活动预计参与用户量30W+,TPS(每秒事务处理量)最高3000左右。这个结果来自我对接口做的微基准性能测试。我习惯使用ab工具......
  • leetcode343. 整数拆分
    classSolution{public:intf[60];//f[i]记录i能拆出的最大乘积intintegerBreak(intn){for(inti=2;i<=n;i++)for(intj=1;j<i;j++)//枚举最后一个拆出的数字,这里不能只循环到i/2f[i]=max(f[i],max(j*f[i-j],j*(i-j)));......
  • day 38 62.不同路径 | 63. 不同路径 II | 343. 整数拆分
    一个机器人位于一个mxn网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径? 输入:m=3,n=7输出:28想要求dp[i][j],只能有两个方向来推导出来,即d......
  • CSE 3430 问题求解
    CSE3430SP23LAB1ABDESCRIPTIONThislabhastwoparts,Part1andPart2.ForPart1,wewillwritecodetodocalculationsondatainasinglestaticallyallocatedarray(asdescribedinslidesetB-5),andwewillreadinputfortheprogramfromaf......
  • P4343 [SHOI2015]自动刷题机
    https://www.luogu.com.cn/problem/P4343 #include<iostream>usingnamespacestd;constintN=1e5+2;#defineintlonglongconstintinf=1e15;inta[N],n......
  • 算法随想Day36【动态规划】| LC343-整数拆分、LC96-不同的二叉搜索树
    动态规划五部曲确定dp[i]的含义dp递推公式dp数组如何初始化确认dp数组遍历顺序打印dp数组,主要用于调试LC343.整数拆分dp[i]含义:数字i被拆解后的最大乘积递推......
  • 代码随想录算法Day41 | 343. 整数拆分 , 96.不同的二叉搜索树
    343.整数拆分题目链接:343.整数拆分-力扣(LeetCode)思路动规五部曲,分析如下:确定dp数组(dptable)以及下标的含义dp[i]:分拆数字 i,可以得到的最大乘积为dp[i]。确......
  • 343. 整数拆分
    给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。返回你可以获得的最大乘积。示例1:输入:2输出:1解释:2=1+1,1×1=1。示......
  • 刷刷刷 Day 40 | 343. 整数拆分
    343.整数拆分LeetCode题目要求给定一个正整数n,将其拆分为k个正整数的和(k>=2),并使这些整数的乘积最大化。返回你可以获得的最大乘积。示例1输入:n=2输......