08 2020 档案
摘要:题目 区间DP,由于棍子长100万,所以我们在cuts之间做区间DP。 那么状态转移方程就是很简单直白的区间DP dp[i][j] = min { dp[i][k-1] + cost(k) + dp[k+1][j]} i<=k<=j cost(k) 表示 从k处切断的cost class Solut
阅读全文
摘要:题目 题意:在一个数组中,找到最多的不相交的子序列,每个子序列的和等于target。 题解:动态规划 dp[i]表示从0到i的子数组的答案。维护前缀数组sums[],我们维护一个记录前缀和的map,map[x]表示前缀和是x距离当前i最近的下标。 那么状态转移方程就是dp[i] = max(dp[i
阅读全文
摘要:题目 一道好题目,把最长递增子序列扩展到二维,但是这道题和最长递增子序列是有区别的,它不要求是序列,只是在数组中找到一组最长的组合,不要求顺序在初始中相同。 这是个二维的最长递增子序列,由于没有顺序限制,所以我们把第一维进行排序,然后对第二维进行动态规划 接下来就和最长递增子序列的思路一样: 效率是
阅读全文