随笔分类 -  B-动态规划

摘要:组合数还要再练练 很多时候并不是一个组合数,而是用 dp 套 组合数 CF367E Sereja and Intervals 考虑每个位置被哪些区间覆盖到。设其为 \([l,r]\)。 有个性质:既然一个区间不会覆盖另一个区间,所以不可能两个区间共用左端点 / 右端点。 发现从一个位置移到下一个位置 阅读全文
posted @ 2022-08-12 21:58 Saintex 阅读(41) 评论(0) 推荐(0)
摘要:本题感觉其实想透了并不难,思路很有目的性。 link 考虑每次这样表示最大值最小值好复杂!那就 设出来。 令 $a_i$ 为第 $i$ 行的最小值,$b_i$ 为第 $i$ 列的最小值。答案即为:$\prod {x=1}^N\prod{y=1}^M \min(a_x,b_y)$。 那我们肯定想对应原 阅读全文
posted @ 2022-07-07 14:56 Saintex 阅读(58) 评论(0) 推荐(0)
摘要:Tips 有维度观念,注意这道题如果要 DP 有哪些维度。维度不一定要在状态中,还可以在条件或DP值中。 对子问题的理解。 观察性质 -> 建立、优化状态 全部 <-> 前缀 分类讨论 「JOISC 2020 Day4」治疗计划 本题 dp 的设定和转移都很 NB! 本题的维度有时间,坐标。 按时间 阅读全文
posted @ 2022-07-01 20:10 Saintex 阅读(45) 评论(0) 推荐(0)
摘要:可以说是一种dp的思维技巧 Problem 给定一个排列 \(p\),你可以智慧地按顺序选择多个区间使这个区间的每个数都等于这个区间的最小值。问最后能得到多少个不同的排列,答案对 \(10^9+7\) 取模。(\(len_p \le 5000\)) Solution 起初我想了一个区间 dp,想必也 阅读全文
posted @ 2021-10-20 16:36 Saintex 阅读(88) 评论(0) 推荐(3)
摘要:这东西真的恶心。 CF113D Museum 来看注释。 #include <cstdio> #include <algorithm> #include <cmath> #include <cstring> #include <iostream> #include <vector> #define 阅读全文
posted @ 2021-10-16 16:26 Saintex 阅读(68) 评论(0) 推荐(0)
摘要:link 此为 CF442B Andrey and Problem 的弱化版。 (此为选数只留下一个算最大/最小概率此类题型的板子。。) 考虑 dp,易写出转移式:\(dp[i]=\prod (1-a_j)_{j<i}\times a_i+dp[i-1]\times (1-a_i)\)。 考虑当前我 阅读全文
posted @ 2021-10-15 19:15 Saintex 阅读(48) 评论(0) 推荐(0)
摘要:来看以下例题:令 \(a_i\) 为 \(\sum_{j \subsetneq i}a_j\)。你会说,这简单啊,枚举子集直接 \(\mathcal O(3^n)\)。 好的,有没有什么更优秀的算法呢?引入高维前缀和。就比如我们要求一个三维的前缀和,需要写一个比较长的容斥式,并且扩展到多维转移的时间 阅读全文
posted @ 2021-08-09 23:51 Saintex 阅读(155) 评论(0) 推荐(0)
摘要:link 单调栈+单调队列+$dp$好题。 首先一眼看出是 \(dp\)。令 \(dp[i]\) 为推倒前 \(i\) 个骨牌所耗费的最小价值,(这个并没有单调性。 考虑 \(dp[i]\) 由什么转移来。 1.左边的翻过来(相当于自己向右边翻)。由于能转移过来的 \(j\) 并不是连续的(显然), 阅读全文
posted @ 2021-07-12 22:05 Saintex 阅读(53) 评论(0) 推荐(0)