开发者社区> 问答> 正文

遇到一个求时间的问题,求解答。

codancer 来到了一栋大楼前,现在他要上楼。如果codancer从第x层走楼梯到第y层(y>x),那么他所花费的时间是a[x]+a[x+1]+…+a[y];如果他从x层坐电梯到第y层,那么他所花费的时间是c+(b[x]+b[x+1]+…+b[y]),因为他等电梯的时间为 c。现在 codancer 想知道 从第 1 层到第 n 层需要最少需要多长时间?有四个入参,第一个输入一个正整数 n,表示要上到第 n 层楼;第二个输入一个整数 c(1<=n<=100000,1<=c<=1000),表示等电梯花费的时间;接下来输入两个数组a和b,数组中n-1个数字代表数组a和b(1<=a[i], b[i]<=1000),分别表示爬楼梯和乘电梯每层楼花费的时间。输出 codancer 到达第 n 层最少需要的时间。

展开
收起
游客4skzfvnrxrzbi 2021-12-23 16:48:01 498 0
1 条回答
写回答
取消 提交回答
  • 对于每层需要保存两个值。一个是这层选择选择走楼梯的最小花费,记为 Ta(i)。另一个是这层选择坐电梯的最小花费,记为 Tb(i)。状态转移(字母与题干中所给含义相同) image.png 这样一直计算到最后一层即可。 输入:4 1 [3,2,3] [1,2,3] 输出:7

    2021-12-23 18:38:02
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载