随笔分类 -  动态规划

摘要:思路比较有新意的区间 dp。 分析 直接用 f(l,r) 表示删除区间 [l,r] 的最大收益会发现无法正确处理删除后出现同色木块合并对应的贡献。 那我们考虑用更复杂的状态表示来维护之。 发现一个区间的右端点终究会有一个时候被删掉,所以利用其来进行状态转移。 我们用 \(f(l, 阅读全文
posted @ 2022-06-07 20:22 HinanawiTenshi 阅读(42) 评论(0) 推荐(0) 编辑
摘要:分析 这题可以拆成两道题来做: 第一题 首先,看到这个合并顺序,感觉十分不好下手,那么我们不妨绕过对合并的分析,看看问题能等价为什么: 随便写几个柿子,比如 1((14)(5(14))),发现运算的结果可以化到最简表述为没有括号只有 +- 的形式,而且加减在除了第一个位置必然是减( 阅读全文
posted @ 2022-05-05 16:30 HinanawiTenshi 阅读(39) 评论(0) 推荐(0) 编辑
摘要:我的解法可能比较诡异😰 分析 题意是给你一棵带权的树,求每个点到其它点的最长路。 因为需要求每个点的,因此考虑换根 dp。 考虑维护信息:f[u]u 到其它点的最长路(也就是所求答案),g[u]u 到其它点次长路,d1[u] 表示 u 阅读全文
posted @ 2022-03-30 11:42 HinanawiTenshi 阅读(28) 评论(0) 推荐(0) 编辑
摘要:分析 这题不如说是一道数学题吧 hh。 考虑倒推,假设现在已经求出了第 i+1 行的结果 c,现在求第 i 行的结果,记为 y​,那么递推式为: \[ \begin{aligned} \frac{2}{3} y_1 - \frac{1}{3}y_2 = \frac{1}{ 阅读全文
posted @ 2022-03-04 11:58 HinanawiTenshi 阅读(63) 评论(0) 推荐(0) 编辑
摘要:比较好想的换根 DP,但是有坑点。 我的做法需要的代码行数应该比较少。。去掉头部就 40 行左右。 分析 约定 f[u] 表示以 u 为根节点的时候的最大流量,w(u,v)u,v 之间的边权。 首先考虑根节点为 u 的时候如何统计 f[u]阅读全文
posted @ 2022-03-02 12:09 HinanawiTenshi 阅读(34) 评论(0) 推荐(0) 编辑
摘要:思路比较毒瘤新颖的一道 DP!这题进阶指南讲得挺好,可以去看看~。 分析 不难想到越贪婪的孩子需要越多的糖,简单的证明:如果存在两个孩子 a,b​​,g[a]>g[b]​​ 且 b​​ 的糖果数大于 a​​ 的,那么交换她们的糖果数,显然不会影响她们和其它人之间的代价(即怨气值贪婪度 阅读全文
posted @ 2022-02-28 21:11 HinanawiTenshi 阅读(58) 评论(0) 推荐(0) 编辑
摘要:这份 dp 题单的最后几题好难 orz。 前面的题比较简单,所以我会选取一些题来讲,其它的直接看代码理解吧 qwq。 传送门: https://atcoder.jp/contests/dp 全部 AC 代码: https://atcoder.jp/contests/dp/submissions?f. 阅读全文
posted @ 2021-10-11 20:17 HinanawiTenshi 阅读(267) 评论(1) 推荐(0) 编辑
摘要:upd: 2021.4.28 添加滑动窗口模板供参考。 目录 简介 滑动窗口模板 例题 简介 单调队列是如何优化DP的呢?其实就是推柿子(找到状态转移方程),然后借助柿子里面连续的特征,利用单调队列将查询最值的代价变低,进而达到优化的目的。 滑动窗口模板 模板题传送门:https://www.acw 阅读全文
posted @ 2021-04-15 21:18 HinanawiTenshi 阅读(58) 评论(0) 推荐(0) 编辑
摘要:传送门:https://codeforces.com/gym/102956 题目大意: 统计满足下列条件的数列的方案数: 非空 严格递增 任意连续三个元素的异或和不为 0 元素小于等于给定的 n 分析: f[i] 表示以 i 为尾的方案数。 考虑状态转移: 如果 \( 阅读全文
posted @ 2021-03-31 19:35 HinanawiTenshi 阅读(52) 评论(0) 推荐(0) 编辑
摘要:传送门:https://codeforces.com/gym/102956/problem/D 题目大意:给出一个数列 a ,选出一个子序列 ak ,使得子序列(长度记为 leni=1len1aki&aki+1 最大。 阅读全文
posted @ 2021-03-30 21:52 HinanawiTenshi 阅读(124) 评论(0) 推荐(0) 编辑
摘要:例题传送门:https://www.luogu.com.cn/problem/P4147 大意:给出一张格子图,部分格子有障碍物,对于格子图上的所有矩形,我们称不包含障碍物的矩形为合法的,求合法的矩形的最大面积。 核心 对于每个点 (i,j) ,求出其向上扩张最大距离后所能围成都最大矩形面积 阅读全文
posted @ 2021-03-19 20:22 HinanawiTenshi 阅读(74) 评论(0) 推荐(0) 编辑
摘要:引入 求 f[st]=istw[i]     (1) 解释: istst&i=i ,熟悉位运算的同学很容易看出 i 就是二进制表示的集合 stst 的子集。 阅读全文
posted @ 2021-03-11 21:17 HinanawiTenshi 阅读(1465) 评论(3) 推荐(5) 编辑
摘要:向y总学习了斜率优化,写下这篇blog加深一下理解。 模板题:https://www.acwing.com/problem/content/303/ 分析 因为本篇的重点在于斜率优化,故在此给出状态转移方程: \(f[i]=\min(f[j]-(t[i]+s)*c[j]+t[i]*c[i]+s*c[ 阅读全文
posted @ 2021-03-04 20:12 HinanawiTenshi 阅读(210) 评论(0) 推荐(2) 编辑
摘要:在开始之前我要感谢y总,是他精彩的讲解才让我对区间DP有较深的认识。 简介 一般是线性结构上的对区间进行求解最值,计数的动态规划。大致思路是枚举断点,然后对断点两边求取最优解,然后进行合并从而得解。 原理 结合模板题(合并石子)讲述:https://www.acwing.com/problem/co 阅读全文
posted @ 2021-02-15 10:25 HinanawiTenshi 阅读(437) 评论(0) 推荐(1) 编辑
摘要:题面:https://www.acwing.com/problem/content/736/ 分析: 这是一道基于贪心和DP的题目,可以从分析两个相邻物品的顺序入手: 对相邻的两个物品 i, i+1 : 记取到它们的时候(假设它们的能量在这个过程中都没有耗尽)它们的属性是: \(s_ 阅读全文
posted @ 2021-02-14 17:58 HinanawiTenshi 阅读(87) 评论(0) 推荐(0) 编辑
摘要:**题面:**https://www.acwing.com/problem/content/description/1083/ **大意:**求给定区间 [X,Y] 中满足下列条件的整数个数:这个数恰好等于 K 个互不相等的 B 的整数次幂之和。 分析 dp(x)表示从 \( 阅读全文
posted @ 2021-02-11 23:36 HinanawiTenshi 阅读(223) 评论(0) 推荐(0) 编辑
摘要:题目:https://www.acwing.com/problem/content/description/10/ 分析 状态表示:f[cur][V]表示当前结点和子树按规则选取的物品可令体积为 V 的背包取到的最大价值。 因为在选取物品的时候并不会记录所选取物品的体积,故考虑直接枚举体积实 阅读全文
posted @ 2021-02-11 09:57 HinanawiTenshi 阅读(76) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示