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 层最少需要的时间。
对于每层需要保存两个值。一个是这层选择选择走楼梯的最小花费,记为 Ta(i)。另一个是这层选择坐电梯的最小花费,记为 Tb(i)。状态转移(字母与题干中所给含义相同) 这样一直计算到最后一层即可。 输入:4 1 [3,2,3] [1,2,3] 输出:7
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。