随笔分类 - DP动态规划
摘要:洛谷P1850 换教室最短路 + 动态规划 题解 首先预处理出任意两点的最短路 然后 dp f[ i ][ j ][ 0/1 ] 现在是 第 i 个时间段,已经申请 过 j次了,该次是否成功 0 否 1 成功 的最小的期望 主要是四个方面的转移 前一个是否申请 成功 or失败 当前是否申请 成功or
阅读全文
摘要:洛谷P1941 飞扬的小鸟 动态规划 这道题主要要注意一下飞到m以上之后高度还是 m 这个就要在判断一下 比较直接暴力的动归 是 O(N^3) f[ i ][ j ] 到 i ,j 这个位置 所需要的最少点击次数 如果不能到,就是无限大 f[ i ][ j ] = min(f[ i-1 ][ j-u
阅读全文
摘要:洛谷P1122 最大子树和一道类似树形DP 的题目 首先我们随意定根 ,假设我们定根为 1, 那么我们设dp[ i ] 表示 在这个整个以1为根的树中 以 i为根的子树 i 这个点强制取到 , 我们再从他的子树中取出一部分出来,最大能够取到的和 我们可知 当 枚举到dp[ u ] 时 ,我们看他的儿
阅读全文
摘要:洛谷P2018 消息传递 树形DP dp[ u ] 表示 u 节点 已经被传到,然后将其字节点都传到所需要的最少时间 可知一个原则 一个树中的子树中如果同时开始传,那么最晚才能传到的,那他肯定最先开始传 因为本身需要的时间就大了,如果再晚一点开始,就要更晚才能结束了 也就是说从叶子向根传,将一个树中
阅读全文
摘要:洛谷P2516 [HAOI2010]最长公共子序列 动态规划 容斥原理这一题求LCS 就用 n^2 动态规划做 求方案数 用到的是与容斥原理差不多的方法 因为f[ i ][ j ] = f[ i-1 ][ j-1] + 1 if == 所以方案数 加上 c[ i-1 ][ j-1 ] 但是也有可能
阅读全文
摘要:洛谷P1450 [HAOI2008]硬币购物 动态规划 + 容斥原理 1、首先我们去掉限制 假设 能够取 无数次 也就是说一开始把他当做完全背包来考虑 离线DP 预处理 复杂度 4*v 用f[ i ] 表示 空间 为 i 的方案数 答案ans 其实就是所有方案 - 所有超过限制的方案 限制指的就是题
阅读全文
摘要:洛谷P1130 红牌 动态规划 状态转移方程 dp[ j ][ i ] = dp[ j-1 ][ i-1 ] + dp[ j ][ i-1 ] 然后 1 的时候判一下就行
阅读全文
摘要:洛谷P3147 [USACO16OPEN]2621442048 合并 题意 每次可以把相邻的两个相同的数字合并, 如x 和 x 合并之后 值就是 x+1 求最终最大能够合并到的数字大小 题解 一种 做法类似倍增 动归 递推 f[ i ][ j ] 表示 从第 i -- f[ i ][ j ]-1 位
阅读全文
摘要:洛谷P1108 低价购买 动态规划 题意 求最长下降子序列长度,以及有多少子序列也是这样的长度,完全相同的不算 f[ i ] 表示到第 i 位时最长的下降子序列 t[ i ] 表示 到第i位有多少这样的不相同的 下降子序列 如果 完全相同的也算的话 那么直接状态转移 t[ i ] = t[ i ]
阅读全文
摘要:洛谷P1725 琪露诺 单调队列优化 DP 题意:1--n 每个点都有一个权值,从当前点i可以到达i+l--i+r 之间的点, 动态规划 方程 为 f[ i ] = max(f[ i ],f[ k ] ) +a[ i ] i-r<=k<=i-l 然而这样复杂度 就为 n^2 因为相当于 dp 是在求
阅读全文
摘要:洛谷P2904 [USACO08MAR]跨河River Crossing动态规划 区间DP f[ i ] 表示 将 i 头牛 运了过去,然后John 又返回所需要的最少时间
阅读全文
摘要:洛谷P1466 集合 Subset Sums这题可以看成是背包问题 用空间为 1--n 的物品恰好填充总空间一半的空间 有几种方案 01 背包问题 1、注意因为两个交换一下算同一种方案,所以最终 要 f [ v ] / 2 2、要开 long long
阅读全文
摘要:洛谷P1282 多米诺骨牌 动态规划 题意: 对多米诺骨牌进行翻转,使其上下值最接近,求最小的翻转次数 dp[ i ][ j ] 表示上面那排前i个数 和为 j 所需要的最小的翻转次数
阅读全文
摘要:洛谷P1077 摆花 DP 划分类动态规划 dp[ i ][ j ] 表示 到 第 i 种花,所有花总共取了 j 盆,总共的方案数
阅读全文
摘要:hdu 1950 最长上升子序列 动态规划 LIS nlogn 做法 采用而二分来优化
阅读全文
摘要:题意将n个数排位环状,将其分为 k个部分,k个部分 对 10 取模 然后累乘起来,求其最大和最小的值 动态规划 用 f[ i ][ j ][ k ] 表示将 i--j这几个数 分为 k个部分 能够取到的最大值 可知状态转移方程 f[ i ][ j ][ k ] = max(f[ i ][ j ][
阅读全文

浙公网安备 33010602011771号