随笔分类 - DP
摘要:题目 这个题表面上看并不像DP,但是当我们看到方案数时,我们可能会想到什么??? 对,分类加法原理,在每一轮中,每一个点的方案数都要加上这个点左边的方案与右边的方案。 因此我们可以枚举,设一个DP数组DP[i][j]表示在第i轮j这个位置的的方案数,最后输出DP[m][1]; 代码:
阅读全文
摘要:题目 这个题一眼看上去是一个贪心,但是一个贪心题就一定要用一个贪心的做法来做吗,为什么不能写一个DP呢,这个题我们可以从他修理牛棚的角度来看,价值就是一个木板可以修几个,但是也同时消耗掉了一个木板的长度也就是代价,想到这里,我们肯定就能想到是一个背包了,但是是一个什么背包呢,我们想一下,完全背包要满
阅读全文
摘要:题目 这个题的本质是动态规划中的背包问题。 为什么会想到背包呢。 因为往往方案数不是排列组合就是递推或者是dp,当然还有其他的可能。我们可以把一个数的代价当成这个数的平方,价值就是一个方案数。由于这个数可以取无数次所以这个背包问题即为一个完全背包。 因此我们可以预处理出从1到数据范围的所有数的方案。
阅读全文
摘要:题目 合唱队形首先要满足的是从1这个位置到中间任意的位置为单增的,从中间任意的位置到最后是单减的,且长度最长。这样才能满足出列的同学最少。 如果要满足这个条件那么我们可以先预处理出每个点的从前找的最长上升子序列的长度和从后找的最长上升子序列的长度。 再找一个最大值。 最后输出总人数减去这个留下的最多
阅读全文
摘要:题目 滑雪是一道dp及记忆化搜索的经典题目。 所谓记忆化搜索便是在搜索的过程中边记录边搜索的一个算法。 当下次搜到这里时,便直接使用。 而且记忆化搜索一定要满足无后效性,为什么呢,因为如果不满足无后效性的话,可能在不同的时候调用这个值所产生的结果并不同。 因此一定要满足无后效性。 且记忆化搜索一定要
阅读全文
摘要:题目 这道题是一个典型的DP,可以用倒推,顺推的方法,来解这道题。当然用不同的方法他的循环次序是不一样的,所以我们一定要深刻地理解题目的大意,再采用状态转移方程与边界每次求出最优解,并记录循环一遍后就可以得出答案。 顺推代码
阅读全文