leetcode 2188 归约后线性dp
此题第一次看较为复杂,但有几个条件比较重要,一个是每种轮胎都是无限个,这个减少了太多难度,此题最难想的地方是,不要想选哪个轮胎,走多久,而是看一段固定的距离,哪个轮胎走花的时间最短。因为最终一定是分成一段一段的。
之后,我们要考虑这个固定的距离最远有多长,由于指数的底最小是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相关推荐
- 799. 香槟塔 : 简单线性 DP 运用题
题目描述 这是 LeetCode 上的 799. 香槟塔 ,难度为 中等. Tag : 「动态规划」.「线性 DP」 我们把玻璃杯摆成金字塔的形状,其中 第一层 有 1 个玻璃杯, 第二层 有 2 个 ...
- 0x51.动态规划 - 线性DP(习题详解 × 10)
目录 0x51.动态规划 - 线性DP 0x51.1 LIS问题 Problem A. 登山 (最长下降子序列) Problem B. 友好城市(思维) Problem C. 最大上升子序列和 0x5 ...
- CodeForces - 456C Boredom(线性dp)
题目链接:点击查看 题目大意:给出一个由n个数字组成的数列,现在给出规则是,每次选择数列中的一种数字 x,选择后的贡献为 x,不过操作后会删除掉所有数值为 x + 1 和 x - 1 的数,现在问如何 ...
- CH 5102 Mobile Service(线性DP)
CH 5102 Mobile Service \(solution:\) 这道题很容易想到DP,因为题目里已经说了要按顺序完成这些请求.所以我们可以线性DP,但是这一题的状态不是很好设,因为数据范围有 ...
- 【动态规划】线性dp P1043 数字游戏
思路: 这题和 [动态规划]P1018 线性dp:乘积最大_m0_52043808的博客-CSDN博客 十分类似,都是把一组数分成固定的部分,然后对分好的数进行特定的操作,求操作后所得的最值 所以,两 ...
- P1772 [ZJOI2006]物流运输(线性dp+最短路径)
P1772 [ZJOI2006]物流运输 题意 [ZJOI2006]物流运输 题目描述 物流公司要把一批货物从码头 A 运到码头 B.由于货物量比较大,需要 nnn 天才能运完.货物运输过程中一般要转 ...
- 寒假算法学习 OI生涯 - 悄无声息(模拟+线性DP优化) OI生涯 - 德国心脏病 (模拟)
OI生涯 - 悄无声息 题目描述 「李」走路是没有动静的,如果你在干「李」不让你干的事情,他会神不知鬼不觉的走到你的身后,然后把你奶一顿! 因为你知道「李」走路没有动静,所以为了提防,可以认为「李」有 ...
- 2020.8.3【算协集训】线性dp
线性dp A - 超级楼梯 (HDU-2041) 分析 代码 B - 一只小蜜蜂... (HDU-2044) 分析 代码 C - 母牛的故事 (HDU-2018) 分析 代码 D - Common S ...
- A. Boredom(线性dp基础题)
题目的大意是:给定你一个数组,每次可以删掉一个大小为a的数,获得a的分数,同时删除数列中所有大小为a+1和a-1的数.问删除所有数组中的数后,能够获得的最大分数值. 思路:本题可以用线性dp来解决.d ...
最新文章
- 系统架构设计:平滑发布和ABTesting
- [ZJOI 2010]count 数字计数
- Python基础教程:列表(list)切片详细操作
- 初学 Delphi 嵌入汇编[12] - 在汇编代码中可以直接使用 Result
- 2018年第九届蓝桥杯 - 省赛 - Java大学A组 - A.复数幂
- [原]Console小技巧——Console版贪食蛇
- CodeForces - 225C. Barcode(DP)
- 您的屁股发热严重,请降温后使用。
- concurrenthashmap_ConcurrentHashMap是如何保证线程安全的
- JavaScript杂谈(顺便也当知识积累)
- C#入门学习——超市收银系统
- HTTP协议基础及报文抓包分析
- R语言根据日历周期处理时间序列数据(周、月、年等):使用xts包的apply.quarterly函数和mean函数计算时间序列的季度平均值(quarterly)
- DSP软件测试用例,DSP测试实验
- 相控阵天线(三):直线阵列天线低副瓣综合(切比雪夫、泰勒分布、SinZ-Z和Villeneuve分布、含python代码)
- 2DPCA的原理推导与实现
- NRF52832-QFAA、NRF52840-QIAA性能区别-蓝牙智能手环穿戴
- 微信支付 商户号该产品权限未开通,请前往商户平台
- 数据库复习 - PART2 - 建模设计与范式
- 企业承担社会责任的必要性
热门文章
- 实现一个简单的计算器,输入一个包含圆括号、加减乘除、求余等符号组成的算术表达式字符串,输出该算术表达式的值
- 浙大版C语言PTA练习答案
- 运放放大倍数计算公式_电源经典运放电路,加法器,减法器,同向放大器,反向放大器...
- 普通话测试app怎么样可以不交钱_普通话水平测试攻略(西安)
- 华硕x550JK,i5改进
- java每日一练:面试题集合
- 看不到同一个网络下的其他计算机,局域网中看不到其他计算机怎么办
- OpenGl入门基础知识-叩开3D的心扉
- 巴比特 | 元宇宙每日必读:未成年人打赏后要求退款,虚拟主播称自己是大冤种,怎么看待这个监管漏洞?...
- 中国土地市场网-js解密