【暑假算法打卡(dp)--7.15】
来源:http://www.tudoupe.com时间:2022-07-16
文章目录
- 连续子集的最大和最大数
- 思路
- 其次,最长的渐进序列
- 思路
- 三、最长递增子序列
- 思路
- 总结
每日打卡
连续子集的最大和最大数
思路
这是一个简单的线性DP问题。
定义f[i]为考虑以nums[i]结束的子集的最大数。 不要丢失f[i]如何移动的一般考虑。
f[i] = max(f[i-1]+nums[i], nums[i])
f[i]表示当前下行和前行连续子集的最大数目,
等于f[i-1]+当前子元素,比当前子元素大
换句话说,要么从当前子标签元素开始添加,要么包含前面的元素
题目来源
其次,最长的渐进序列
思路
动态规划中,线性重叠不能减少计算dp的复杂性;在计算的每一轮中,必须通过[0,k)间隔元素的线性过渡取得dp[k]。我们考虑是否可以重新设计国家定义,使整个dp成为序列列表,所以在计算每个dp[k]时,通过二进制方法可以通过[0,k)间隔元素,减少这个部分的复杂度从O(N)到O(logN)
题目来源
三、最长递增子序列
思路
任何决定是否离开房子的决定都是与前者是否拥有房子有关的
我们定义 f[i][2] 为有否在位置i. 中有一个房子的程序的数目。 f[i][0] 表示没有房子, f[i][1] 表示有房子
- 地点没有房子,无论有没有房子,都可以搬走
f[i][0] = (f[i - 1][1] + f[i - 1][0]) % MOD; - 如果你想把房子置于i-位置,你不需要在i-1中置房子。
f[i][1] = f[i - 1][0];
由于道路的两边是独立的,可以采用两个条件的f和一个方形
记住使用长度和服用 MOD
总结
提示:本文的摘要如下:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
下一篇:7.16(6)
相关新闻
- 2022-08-04 WPF的由来
- 2022-08-04 Win11勒索软件防护怎么打开?Win11安
- 2022-08-04 Windows系统jdk的配置
- 2022-08-04 Windows10 OneNote怎么重新登录?如何重
- 2022-08-04 超好用的 Windows 效率工具推荐
- 2022-08-04 Windows如何在CMD或PowerShell中配置代理
- 2022-08-04 powershell和cmd对比
- 2022-08-04 【QT】Windows下QT下载安装
- 2022-08-04 windows下 C++ 实现类属性的get和set方
- 2022-08-04 Win11快速助手在哪里?Win11打开快速
|
|
|
|
|
|
|
|
|
|