随笔分类 -  动态规划/dp

摘要:P6773 NOI2020 命运 数据结构上做 dp,少见但好用。 思路 首先我们用 dp 来解决这个问题。由于与祖先有关,我们不妨把一个节点的子问题限定在子树内,考虑所有从子树内连向子树外的集合 \(Q'\)。 设 \(f[u][i]\) 为 \(u\) 的集合 \(Q'\) 未被覆盖的祖先深度最 阅读全文
posted @ 2025-02-17 15:34 彬彬冰激凌 阅读(20) 评论(0) 推荐(2)
摘要:多校A层冲刺NOIP2024模拟赛08 排列 一种连续段 dp 的解法。 题面 小 Y 最近在研究组合数学,他学会了如何枚举排列。 小 Z 最近在研究数论,他学会了求最大公约数。 于是小 Y 和小 Z 联手出了一个有趣的题目: 有多少个长度为 \(n\) 且任意相邻两个数的最大公约数都不为 \(k\ 阅读全文
posted @ 2024-10-17 22:17 彬彬冰激凌 阅读(63) 评论(0) 推荐(1)
摘要:P4229 某位歌姬的故事 处理复杂点的 dp 题。 思路 先考虑 \(n\) 比较小的情况,把每个询问放到线段上,发现每个格子只能满足覆盖最小的限制,于是考虑将询问有效区间排序考虑。 设 \(f[i][j]\) 表示在 \(j\) 处放最大值满足限制 \(i\),\(j\) 之前任选,\(j\) 阅读全文
posted @ 2024-10-12 08:34 彬彬冰激凌 阅读(38) 评论(0) 推荐(1)
摘要:P10681 COTS/CETS 2024 奇偶矩阵 Tablica 来自 qnqfff 大佬的梦幻 dp。 约定 二元组 \((n,m)\) 表示一个 \(n\) 行 \(m\) 列的矩形。 不添加说明的子问题,限制与题面一致。 思路 先考虑放最后一行,发现你填的位置经过变换后可以得到其他的结果, 阅读全文
posted @ 2024-09-27 08:39 彬彬冰激凌 阅读(39) 评论(0) 推荐(1)
摘要:几何 比赛时候唐了,连状态都没想到。 记录一下 dp 的惯用优化方法。 思路 (此处串 \(x,y\) 从 \(0\) 开始,串 \(s\) 从 \(1\) 开始) 设 \(dp[i][j][k]\) 为第 \(i\) 位时,将 \(s[1,i]\) 分为,串 \(x\) 重复若干次加上串 \(x[ 阅读全文
posted @ 2024-09-25 16:57 彬彬冰激凌 阅读(28) 评论(0) 推荐(2)
摘要:CF1503E 2-Coloring cjx 组合强。 思路 观察一下题目,不难发现只有当黄色形成如下的单峰时才合法。 (染错色了,将就一下) 其中两座峰的峰顶高度相加等于 \(m\),为了方便统计,我们钦定右边的峰一定在左峰下方的行出现,最后答案乘以二就是最终方案。 发现对于每一边是两个最长不下降 阅读全文
posted @ 2024-08-17 10:13 彬彬冰激凌 阅读(30) 评论(0) 推荐(2)
摘要:P3523 POI2011 DYN-Dynamite 小 trick,加双倍经验。 思路 使 \(dis\) 的最大值最小,可以想到二分 \(dis\),然后根据 \(dis\) 判断可行性。 那么可以把问题转化为,所有关键点到选择的点的距离小于 \(dis\) 的前提下,使得使用的点的个数最小。 阅读全文
posted @ 2024-07-07 12:58 彬彬冰激凌 阅读(19) 评论(0) 推荐(0)
摘要:P4253 SCOI2015 小凸玩密室 一道紫色的 dp。 思路 首先读题: 要保证任意时刻所有被点亮的灯泡必须连通 在点亮一个灯泡后必须先点亮其子树所有灯泡才能点亮其他灯泡 考虑设 \(g[u][1]\) 为 \(u\) 子树第一个被选中的是子树的根的代价,\(g[u][0]\) 为 \(u\) 阅读全文
posted @ 2024-06-21 13:59 彬彬冰激凌 阅读(31) 评论(0) 推荐(0)
摘要:P3267 JLOI2016/SHOI2016 侦察守卫P3267 JLOI2016/SHOI2016 侦察守卫 互相赋值的双 dp 思路 设 \(f[u][i]\) 表示包括 \(u\) 子树内所有关键点都被覆盖(包括 \(u\)),且至少还可以向 \(u\) 的父亲方向覆盖 \(i\) 层的最小代价。 设 \(g[u][i]\) 表示向下距离大于等于 阅读全文
posted @ 2024-06-11 13:49 彬彬冰激凌 阅读(19) 评论(0) 推荐(0)
摘要:P4629 SHOI2015 聚变反应炉 树上背包+树形dp。 算是套娃题吗? 思路 看到数据考虑数据分治。 part1 贪心 \(c_i\leq 1\) 对于这种情况,我们考虑贪心的点亮。 手玩几组数据,发现只要先全部点亮 \(c_i=1\) 的点,都可以得到最优解。 若存在一个 \(c_i=1\ 阅读全文
posted @ 2024-06-07 13:44 彬彬冰激凌 阅读(15) 评论(0) 推荐(0)
摘要:P6419 COCI2014-2015#1 Kamp 换根 \(dp\) 的 trick。 题面 钦定 \(k\) 个关键点,求每个点出发,访问完所有关键点的距离最小值。 思路 设 \(g_u\) 为从点 \(u\) 出发,访问完子树内所有关键点后,回到点 \(u\) 的距离最小值。 \(s_u\) 阅读全文
posted @ 2024-06-06 16:00 彬彬冰激凌 阅读(20) 评论(0) 推荐(1)
摘要:ABC240Ex Sequence of Substrings LIS 的好题改编。 约定 \(S(l,r)\) 为字符串 \(s\) 中第 \(l\) 位到底 \(r\)​ 位。 \(S(l,r)<S(x,y)\) 为字符串中 \([l,r]\) 的子串字典序比 \([x,y]\) 的子串小。 前 阅读全文
posted @ 2024-05-05 21:29 彬彬冰激凌 阅读(26) 评论(0) 推荐(0)
摘要:P8392 BalticOI 2022 Day1 Uplifting Excursion 贪心加动规,好题,这两个甚至完全相反的东西可以融进一道题…… 思路 物品较少,贡献较小,体积较小,但总体积巨大。 直接上 \(dp\) 容易把心态搞炸。 我们可以先考虑贪心,使贡献最多还剩 \(m\)。然后考虑 阅读全文
posted @ 2024-01-29 08:57 彬彬冰激凌 阅读(54) 评论(0) 推荐(0)
摘要:ARC127E Priority Queue 分析性质+dp。 思路 由于每次加入的数肯定是一个 \(a\) 的排列,但这个角度不好考虑。 设 \(\{a\}\) 为最终状态的集合,其中 \(a_i<a_{i+1}\),显然集合内元素个数为 \(A-B\)。 然后可以发现,按照元素值升序的加入顺序形 阅读全文
posted @ 2024-01-26 09:35 彬彬冰激凌 阅读(25) 评论(0) 推荐(0)
摘要:P7563 JOISC 2021 Day4 最悪の記者 4 (Worst Reporter 4) 线段树合并好题,通过线段树合并特别的方式优化了树形 dp。 思路 根据图中的不等关系连边建图,不难发现最后的图将会是基环树森林和普通的树的森林,我们先考虑对于一棵树要怎么办。 将 \(h_i\) 离散化 阅读全文
posted @ 2024-01-24 21:41 彬彬冰激凌 阅读(44) 评论(0) 推荐(0)
摘要:ARC133D Range XOR 题目链接:【ARC133D】 Range XOR 非常好数位 dp。 思路 根据异或的前缀和,我们可以把式子化成这样。 \[\sum_{i=l}^r\sum_{j=i}^r [s_j\oplus s_{i-1}==v] \]然后先去掉 \(l \leq r\) 的 阅读全文
posted @ 2024-01-10 23:01 彬彬冰激凌 阅读(27) 评论(0) 推荐(0)
摘要:2023NOIP A层联测18 T4 P9312 【EGOI2021】Lanterns/灯笼 思路 考虑状压动规,设 \(f[S][i]\) 表示购买的灯笼覆盖 \(S\) 区间,人在 \(i\) 点的最小代价。 这个状态数 Famer John 肯定不行,考虑优化。设 \(f[L][R][i]\) 阅读全文
posted @ 2023-11-09 10:34 彬彬冰激凌 阅读(2) 评论(0) 推荐(0)
摘要:NOIP2023模拟9联测30 T4 金牌 LCA 还能 \(O(1)\)…… 思路 思路非常简单,可考试就是想歪成统计指数了…… 将一条穿过 \((x,y)\) 的路径 \((u,v)\) 分为 \(u \to x \to y \to v\),所以说对答案的贡献为: \[2^{dis(u,x)+d 阅读全文
posted @ 2023-11-02 22:21 彬彬冰激凌 阅读(42) 评论(0) 推荐(0)
摘要:CSP模拟58联测20 T3 注视一切的终结 题面及数据范围 Ps:链接为衡水中学OJ。 去除重边以后是树,而我们需要使一个点到另外一个点的简单路径上相邻边的颜色尽可能不相同。 发现如果一条边有 \(3\) 种或以上的颜色,那么该边肯定可以与相邻边不同,所以把 \(\geq3\) 的情况均看为 \( 阅读全文
posted @ 2023-10-19 19:34 彬彬冰激凌 阅读(28) 评论(0) 推荐(0)
摘要:传话游戏 思路 分析题目后不难发现,对于一个单词只可以和前后进行交换。 问题变为:有 \(n\) 个单词只可以前后交换问,每个单词至多交换一次,求最后的单词序列种数。 设 \(f[i][0/1/3]\) 为前 \(i\) 个单词,\(0\):与前面的单词交换的方案数,\(1\):不交换的方案数,\( 阅读全文
posted @ 2023-10-17 22:23 彬彬冰激凌 阅读(42) 评论(0) 推荐(0)