此题第一次看较为复杂,但有几个条件比较重要,一个是每种轮胎都是无限个,这个减少了太多难度,此题最难想的地方是,不要想选哪个轮胎,走多久,而是看一段固定的距离,哪个轮胎走花的时间最短。因为最终一定是分成一段一段的。

之后,我们要考虑这个固定的距离最远有多长,由于指数的底最小是2,可以算出20即可满足要求。

之后,下一个难点就是要考虑线性dp,从第一个开始,枚举前20个算出每个的最优,dp[i]dp[i]dp[i]定义为走iii圈花费的最短时间。考虑好这些后,代码就较为简单了,还有就是要用ll防止爆int。

typedef long long ll;class Solution {public:int minimumFinishTime(vector<vector<int>>& tires, int changeTime, int numLaps) {// 预处理,得到任意一段路的最短时间vector<ll> _min(21, INT_MAX);_min[0] = 0;for(auto v: tires){ll old = 0;for(int i=1;i<=20;i++){old += v[0] * pow(v[1], i-1);if(old > INT_MAX)break;_min[i] = min<ll>(_min[i], old);}}// 使用线性dp,进行选择vector<ll> dp(numLaps+1, INT_MAX);dp[0] = -changeTime;dp[1] = _min[1];for(int i=2;i<=numLaps;i++){for(int j=max(0, i-20);j<i;j++){if(i-j <= 20)dp[i] = min(dp[i], dp[j] + _min[i-j] + changeTime);}}return dp[numLaps];}
};

leetcode 2188 归约后线性dp相关推荐

  1. 799. 香槟塔 : 简单线性 DP 运用题

    题目描述 这是 LeetCode 上的 799. 香槟塔 ,难度为 中等. Tag : 「动态规划」.「线性 DP」 我们把玻璃杯摆成金字塔的形状,其中 第一层 有 1 个玻璃杯, 第二层 有 2 个 ...

  2. 0x51.动态规划 - 线性DP(习题详解 × 10)

    目录 0x51.动态规划 - 线性DP 0x51.1 LIS问题 Problem A. 登山 (最长下降子序列) Problem B. 友好城市(思维) Problem C. 最大上升子序列和 0x5 ...

  3. CodeForces - 456C Boredom(线性dp)

    题目链接:点击查看 题目大意:给出一个由n个数字组成的数列,现在给出规则是,每次选择数列中的一种数字 x,选择后的贡献为 x,不过操作后会删除掉所有数值为 x + 1 和 x - 1 的数,现在问如何 ...

  4. CH 5102 Mobile Service(线性DP)

    CH 5102 Mobile Service \(solution:\) 这道题很容易想到DP,因为题目里已经说了要按顺序完成这些请求.所以我们可以线性DP,但是这一题的状态不是很好设,因为数据范围有 ...

  5. 【动态规划】线性dp P1043 数字游戏

    思路: 这题和 [动态规划]P1018 线性dp:乘积最大_m0_52043808的博客-CSDN博客 十分类似,都是把一组数分成固定的部分,然后对分好的数进行特定的操作,求操作后所得的最值 所以,两 ...

  6. P1772 [ZJOI2006]物流运输(线性dp+最短路径)

    P1772 [ZJOI2006]物流运输 题意 [ZJOI2006]物流运输 题目描述 物流公司要把一批货物从码头 A 运到码头 B.由于货物量比较大,需要 nnn 天才能运完.货物运输过程中一般要转 ...

  7. 寒假算法学习 OI生涯 - 悄无声息(模拟+线性DP优化) OI生涯 - 德国心脏病 (模拟)

    OI生涯 - 悄无声息 题目描述 「李」走路是没有动静的,如果你在干「李」不让你干的事情,他会神不知鬼不觉的走到你的身后,然后把你奶一顿! 因为你知道「李」走路没有动静,所以为了提防,可以认为「李」有 ...

  8. 2020.8.3【算协集训】线性dp

    线性dp A - 超级楼梯 (HDU-2041) 分析 代码 B - 一只小蜜蜂... (HDU-2044) 分析 代码 C - 母牛的故事 (HDU-2018) 分析 代码 D - Common S ...

  9. A. Boredom(线性dp基础题)

    题目的大意是:给定你一个数组,每次可以删掉一个大小为a的数,获得a的分数,同时删除数列中所有大小为a+1和a-1的数.问删除所有数组中的数后,能够获得的最大分数值. 思路:本题可以用线性dp来解决.d ...

最新文章

  1. 系统架构设计:平滑发布和ABTesting
  2. [ZJOI 2010]count 数字计数
  3. Python基础教程:列表(list)切片详细操作
  4. 初学 Delphi 嵌入汇编[12] - 在汇编代码中可以直接使用 Result
  5. 2018年第九届蓝桥杯 - 省赛 - Java大学A组 - A.复数幂
  6. [原]Console小技巧——Console版贪食蛇
  7. CodeForces - 225C. Barcode(DP)
  8. 您的屁股发热严重,请降温后使用。
  9. concurrenthashmap_ConcurrentHashMap是如何保证线程安全的
  10. JavaScript杂谈(顺便也当知识积累)
  11. C#入门学习——超市收银系统
  12. HTTP协议基础及报文抓包分析
  13. R语言根据日历周期处理时间序列数据(周、月、年等):使用xts包的apply.quarterly函数和mean函数计算时间序列的季度平均值(quarterly)
  14. DSP软件测试用例,DSP测试实验
  15. 相控阵天线(三):直线阵列天线低副瓣综合(切比雪夫、泰勒分布、SinZ-Z和Villeneuve分布、含python代码)
  16. 2DPCA的原理推导与实现
  17. NRF52832-QFAA、NRF52840-QIAA性能区别-蓝牙智能手环穿戴
  18. 微信支付 商户号该产品权限未开通,请前往商户平台
  19. 数据库复习 - PART2 - 建模设计与范式
  20. 企业承担社会责任的必要性

热门文章

  1. 实现一个简单的计算器,输入一个包含圆括号、加减乘除、求余等符号组成的算术表达式字符串,输出该算术表达式的值
  2. 浙大版C语言PTA练习答案
  3. 运放放大倍数计算公式_电源经典运放电路,加法器,减法器,同向放大器,反向放大器...
  4. 普通话测试app怎么样可以不交钱_普通话水平测试攻略(西安)
  5. 华硕x550JK,i5改进
  6. java每日一练:面试题集合
  7. 看不到同一个网络下的其他计算机,局域网中看不到其他计算机怎么办
  8. OpenGl入门基础知识-叩开3D的心扉
  9. 巴比特 | 元宇宙每日必读:未成年人打赏后要求退款,虚拟主播称自己是大冤种,怎么看待这个监管漏洞?...
  10. 中国土地市场网-js解密