动态规划
文章平均质量分 83
鹭天
敦立坤我是你爹
展开
-
【状压dp】 Cunning Gena
采用滚动数组的时候需要注意,我们在当前这轮状态的时候很可能还保留着前一次状态的信息,所以我们每次重启一轮,都要重新赋值,放置前一轮的信息对这一轮产生影响。第i个人的解题状态我们也用一个状压数组去表示(假设为s[i])我们将人按照显示器从小到大排序,然后显示器的数量就有了单调性。对于第i个人,当前的答案就是f数组的答案加上显示器的答案。由于当前只和前面一维有关,所以我们可以采用滚动数组。但是这道题还有一个需要注意的点就是显示器的问题。表示前i个人,组成解决问题的状态为j的最少花费。所以我们从前面往后面转移。原创 2024-07-21 21:50:04 · 998 阅读 · 0 评论 -
【题解 && 优化dp】 B - Base Station Construction
我刚开始其实想从线段入手,但是发现重叠的部分根本不好处理,以至于我被卡了思路,一直到结束。这样表示显然是没问题的,因为除了第一个基站,其他基站的设立必定是存在上一个基站的。表示必须在第i个点建设基站,并且i号点之前的线段全部满足要求时所需要的最小代价。我们注意到题目要求:每一条线段上都必须要有一个基站存在。但是这个j显然不能乱找,怎么样去找这个j才是合法的呢?当dp状态设定不好的时候,我们不妨从最简单的部分出发。建基站的位置(注意,是上一个!这个j的位置显然是需要经过预处理的。一个是点,一个是线段。原创 2024-01-19 14:17:34 · 527 阅读 · 0 评论 -
【题解 && 单调队列优化dp】 简单的加法乘法计算题
那么对于第一种方式,我们发现这是一段长度固定区间里的最小值。对于第二种方式,由于m最大只有10,所以我们可以暴力转移。由于对于每一步而言,我们都需要的是最小步数。我们可以考虑滑动窗口,即单调队列去优化dp。线段树常数太大,会t,不建议使用。表示达到i时的最小步数。原创 2023-10-24 20:21:17 · 209 阅读 · 2 评论 -
【题解 && 动态规划】 Colored Rectangles
乍一看我还以为是贪心!猫 想想感觉没问题但是局部最优并不能保证全局最优比如这组数据如果按照贪心的做法,答案是20*20*2但是其实答案是19*20*4因此这道题用贪心是不对的于是我们考虑dp可以观察到这道题的n非常小只有200这就暗示我们这道题可以用n3的做法去解决那么我们就可以这样设dp状态fijk表示用三个颜色分别用了前ijk个数,所能获得的最大价值如何转移呢?考虑一次可以取两个数也就是说可以取12,23,13。原创 2023-10-03 20:08:39 · 241 阅读 · 0 评论 -
【二分答案 && dp】 Bare Minimum Difference
进一步分析我们发现这道题我们只需要关注最小值和最大值,所以每个区间的和只要介于最小值和最大值之间就可以。如果从分割区间的方式出发,这道题很难进行维护,因为分割的方式多样,每一次不同的分割都会产生不同的结果。同时注意到分割区间至少分分割出两个区间,所以我们只需要把一个区间的可能性判掉就行了。但是我们并不需要求出具体的分割方式,我们只需要去检验当前分割方式是否可行即可。枚举所有可能得最小值,而后二分我们的答案,得出我们的最大值。我们注意到对于整个序列来说,子区间的个数最多只有。这样我们就得到了合法区间的范围。原创 2023-09-08 21:52:41 · 269 阅读 · 0 评论 -
【斜率优化】 仓库建设
题目描述:SolutionSolutionSolution一、n3dpn^3dpn3dp设dp[i]dp[i]dp[i]表示在第iii个点设立仓库的最小代价。可以通过枚举前一个设置仓库的地方进行转移:dp[i]=min{dp[j]+∑k=j+1i(xi−xk)∗pk}dp[i]=min\{dp[j]+\sum_{k=j+1}^i(x_i-x_k)*p_k\}dp[i]=min{dp[j]+k=j+1∑i(xi−xk)∗pk}...原创 2020-09-26 11:09:39 · 188 阅读 · 0 评论 -
【题解 && dp】CF82D Two out of Three
题目传送门题目描述:SolutionSolutionSolution很容易发现一个性质:不管前面选取哪些人,一定会有一个人是剩下的不被选取的。因此我们设f[i][j]f[i][j]f[i][j]表示第iii次选取之后,剩下jjj时的最少能量。由于一次只能选择两个人,而每次前面只剩下一个人,所以选择第iii个人时,前三个人只能是(i∗2)(i*2)(i∗2),(i∗2+1)(i*2+1)(i∗2+1),(j)(j)(j),自己手玩很容易证明。因此我们就可以进行转移:因为一次选222个人,所原创 2020-09-18 16:32:40 · 419 阅读 · 0 评论 -
【题解 && dp优化】 union
题目描述:Solution我们如果选了一段区间,那么这段区间一定需要包含至少kkk个数。我们设f[i]f[i]f[i]表示选到底i个数的最大权值。设maxx[i]=maxj=1i(f[j])maxx[i]=max_{j=1}^{i}(f[j])maxx[i]=maxj=1i(f[j])然后再有一个前缀和数组sumsu msum如果不选第iii个数:f[i]=f[i−1];f[i]=f[i-1];f[i]=f[i−1];如果选第i个数,很容易得到以下的dp式子:f[i]=max(maxx原创 2020-09-14 21:29:45 · 119 阅读 · 0 评论 -
【题解 && 区间dp】 Coloring Brackets
题目传送门题目描述:Solution我们考虑一对括号能够产生的贡献。设dp[l][r][i][j]dp[l][r][i][j]dp[l][r][i][j]表示当前区间为[l,r][l,r][l,r],第lll个括号的颜色为iii,第rrr个括号的颜色为jjj的方案数。(i,j∈[0,1,2]i,j\in [0,1,2]i,j∈[0,1,2])我们设mat[i]mat[i]mat[i]表示第iii个括号匹配到的右括号的位置(其中第iii个括号为左括号),这里我们需要用一个栈去操作:接着对于问原创 2020-09-14 20:32:46 · 198 阅读 · 0 评论 -
【题解 && 线段树优化DP】Pillars
题目传送门题目描述:Solution我们根据做最长子序列最长子序列最长子序列时的经验设dpdpdp状态:f[i]f[i]f[i]表示匹配了前i−1i-1i−1个数,且第iii个数必须匹配的最大长度很容易得到以下的转移式:f[i]=maxj=1i−1f[j]+1 (∣a[i]−a[j]∣>=d)f[i] = max_{j=1}^{i-1}f[j]+1\ \ (|a[i]-a[j]|>=d)f[i]=maxj=1i−1f[j]+1 (∣a原创 2020-08-17 20:24:59 · 368 阅读 · 0 评论 -
【题解 && 状态压缩】 混乱的数字
题目描述:一天,抽屉从鲍勃那里得到了 n 个不同的牌子,每个牌子上都写了一个数字 ai(牌子上的数字可以相同)。高兴的抽屉把这些牌子排成一排,但他并不想牌子显得混乱。具体来说,若任意两个相邻的牌子上的数字相差超过 K,这些牌子就会显得很混乱。那么,有多少种不同的排列方案使得这些牌子显得混乱呢?两种方案不同且仅当某个牌子的摆放位置不同。Solution(由于太久没写状压的题了。。今天写一篇博客巩固一下。。)数据范围中n最多是16,而这个题目又是一个放数问题,就很显然是一个状压了。设f[S][i]f原创 2020-07-19 20:48:17 · 215 阅读 · 0 评论 -
【状压dp && 容斥原理】普转提七联测Day1 玩具 toy
问题描述:小S有 个盒子,每个盒子里都装着若干个玩具。玩具一共有 种不同的类型。现在,小S想要知道有多少种不同的挑选盒子的方式,使得每种种类的玩具都至少在这些盒子里出现了一次。请输出答案对1e9+71e9+71e9+7取模的值。50% N≤100,M≤1550\%\ N ≤ 100,M ≤ 1550% N≤100,M≤1570% N≤106,M≤1570\%...原创 2019-11-01 18:02:56 · 469 阅读 · 0 评论 -
【题解&&作业&&dp】最大子段和V1
题目传送门题目描述:N个整数组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续子段和的最大值。当所给的整数均为负数时和为0。例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。输入第1行:整数序列的长度N(2 <= N <= 50000)第2 - N + 1行:N个整数(-10^9 ...原创 2018-12-28 21:58:28 · 173 阅读 · 0 评论 -
【金华集训】 在C班的笔记:简单dp(只有几题)
简单dp听的例题:一、GCD:有一串数,每一个数可以+1,-1,不变,求gcd的最大值考虑 dfs最基础的dfs大家都能想到,直接暴力枚举每一个数+1、-1、不变,计算gcd即可‘’考虑优化发现当gcd是2的倍数时,往后走的方向只有一种所以当gcd%2==0gcd \%2 ==0gcd%2==0 时,我们就将gcd/=2gcd/=2gcd/=2发现跑的飞快二、opentra...原创 2019-07-30 11:36:00 · 183 阅读 · 0 评论 -
【题解 && 金华集训 && 概率期望 && 动态规划】 换教室
题目传送门题目描述:一天一共有 n 节课,第 i 节课默认在第 c[i] 间教室上,可以申请第 i 节课到第 d[i] 间教室上,申请有 k[i] 的概率通过,从第 x 间教室到第 y 间教室有距离 dis[x][y],你最多可以申请 m 门课,要求跑的期望距离尽量少Solution这是一道概率期望dp我们设dp[i][j][0/1]dp[i][j][0/1]dp[i][j][0...原创 2019-07-30 13:33:38 · 146 阅读 · 0 评论 -
【金华集训 && 题解 && 动态规划】Multiplicity
题目传送门题目描述:有个长度为n的序列a,你需要统计a中有多少个棒棒的子序列。一个序列b被定义为棒棒的,当且仅当:对于序列中每?个位置i,b_i都能够被i整除。答案对1e9+7取模Solution我们很容易设出初始的dp状态:dp[i][j]表示前i个数组成长度为j的序列的方案数dp[i][j] 表示前i个数组成长度为j的序列的方案数dp[i][j]表示前i个数组成长度为j的序列...原创 2019-08-02 19:21:32 · 144 阅读 · 0 评论 -
【金华集训 && 题解 && 树形动态规划】 Gcd Counting
题目传送门题目描述:给出一棵n个节点的树,每个节点上有点权ai。求最长的树上路径,满足条件:路径上经过节点(包括两个端点)点权的gcd和不等于1。题目中的gcdgcdgcd不为1的限制性很强也就是说对于一串数,它们只要有一个质因数即可。经过这番思考,我们自然而然地设置出以下方程:dp[i][j]dp[i][j]dp[i][j]表示在以i为根的子树中至少含有质因数j的最长路径长度...原创 2019-08-02 21:40:45 · 185 阅读 · 0 评论 -
【金华集训 && 笔记】 Day 6 —动态规划
一、gcd counting:给定一棵有点权的树,求路径上节点的点权的gcd和不等于1的最长路径考虑点分治对于每条路径,求出它到重心的满足条件的路径的最大值考虑dpdp[u][k]dp[u][k]dp[u][k]表示以u为根的子树中是否含有质因数jgcd和不等于1说明互相补互质,也就是说有共同的质因子2∗1052*10^52∗105中质因子个数不会特别多,暴力枚举即可。暴力出奇迹。...原创 2019-08-02 11:40:57 · 131 阅读 · 0 评论 -
【概率期望 && 动态规划】 Card Collector
题目传送门题目描述:Solution首先知道这道题的数据范围只有20,很显然的想到了状态压缩。设dp[S]表示∣S∣这个集合到卡牌全部购买的概率期望(1表示买,0表示不买)dp[S]表示|S|这个集合到卡牌全部购买的概率期望(1表示买,0表示不买)dp[S]表示∣S∣这个集合到卡牌全部购买的概率期望(1表示买,0表示不买)我们能够得到以下很显然的式子:dp[S]=∑i∈∣S∣p[...原创 2019-08-10 18:57:32 · 245 阅读 · 0 评论 -
【题解 && 海亮集训 && 动态规划】 先进序列(sequence)
///这个月似乎好久没写博客了。。赶紧补一篇题目描述:萌猪大统领温温正在为他看到的所有事物评选先进。温温已经评选出了 n 个先进整数 ai,现在,他决定在此基础上评选一下先进序列。一个整数序列 x1,x2,…xk 是先进的,当且仅当它满足以下三个条件1、这个序列是严格递增的。2、序列中,任意两个相邻的元素都不是互质的,即 gcd(xi, xi+1) > 1 对 1 ≤ i &l...原创 2019-07-18 21:18:11 · 225 阅读 · 0 评论 -
【蓝书刷题 && dp】 传纸条
题目传送门题目描述:小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标(1,1),小轩坐在矩阵的右下角,坐标(m,n)。从小渊传到小轩的纸条只可以向下或者向右传递,从...原创 2019-05-27 16:56:43 · 128 阅读 · 0 评论 -
【线性dp && 蓝书刷题】 Mobile Service
题目传送门题目描述:一个公司有三个移动服务员。如果某个地方有一个请求,某个员工必须赶到那个地方去(那个地方没有其他员工),某一时刻只有一个员工能移动。被请求后,他才能移动,不允许在同样的位置出现两个员工。从p到q移动一个员工,需要花费c(p,q)。这个函数没有必要对称,但是c(p,p)=0。公司必须满足所有的请求。目标是最小化公司花费。c[i][j] 由题目输入给出分析:在第一反应下...原创 2019-05-27 15:40:55 · 415 阅读 · 1 评论 -
【题解&&海亮集训】 数字(上升)序列
题目传送门题目描述:对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 < x2 < … < xm)且( ax1 < ax2 < … < axm)。那么就称P为S的一个上升序列。如果有多个P满足条件,那么我们想求字典序最小的那个。任务给出S序列,给出若干询问。对于第i个询问,求出长度为Li的上升...原创 2019-01-26 16:01:16 · 324 阅读 · 0 评论 -
【题解&&作业&&dp】51nod1052最大M子段和V1
题目传送门题目描述:N个整数组成的序列a[1],a[2],a[3],…,a[n],将这N个数划分为互不相交的M个子段,并且这M个子段的和是最大的。如果M >= N个数中正数的个数,那么输出所有正数的和。例如:-2 11 -4 13 -5 6 -2,分为2段,11 -4 13一段,6一段,和为26。输入第1行:2个数N和M,中间用空格分隔。N为整数的个数,M为划分为多少段。(2 &...原创 2019-01-03 11:45:57 · 180 阅读 · 0 评论 -
【dp&&题解&&作业】51nod1055最长等差数列
题目传送门题目描述:N个不同的正整数,找出由这些数组成的最长的等差数列。例如:1 3 5 6 8 9 10 12 13 14等差子数列包括(仅包括两项的不列举)1 3 51 5 9 133 6 9 123 8 135 9 136 8 10 12 14其中6 8 10 12 14最长,长度为5。输入第1行:N,N为正整数的数量(3 <= N <= 10000)...原创 2019-01-02 21:34:40 · 105 阅读 · 0 评论 -
【题解&&作业&&dp】51nod1254最大子段和V2
题目传送门题目描述:N个整数组成的序列a[1],a[2],a[3],…,a[n],你可以对数组中的一对元素进行交换,并且交换后求a[1]至a[n]的最大子段和,所能得到的结果是所有交换中最大的。当所给的整数均为负数时和为0。例如:{-2,11,-4,13,-5,-2, 4}将 -4 和 4 交换,{-2,11,4,13,-5,-2, -4},最大子段和为11 + 4 + 13 = 28。...原创 2019-01-01 21:17:12 · 237 阅读 · 0 评论 -
【作业&&题解&&dp】51nod1007 正整数分组
题目传送门题目描述:将一堆正整数分为2组,要求2组的和相差最小。例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的。输入第1行:一个数N,N为正整数的数量。第2 - N+1行,N个正整数。(N <= 100, 所有正整数的和 <= 10000)输出输出这个最小差输入样例512345输出样例1...原创 2019-01-05 19:50:14 · 199 阅读 · 0 评论 -
【海亮DAY12(三)】背包的补充二
专辑:动态规划-背包-海量集训 分三次更新 更新提示:第三次更新 我们的第二次更新主要复习了前四种 背包问题主要分为以下几种:1、01背包问题2、完全背包问题3、多重背包问题4、混合三种背包问题5、二维费用的背包问题6、分组的背包问题7、有依赖的背包问题8、背包问...原创 2018-07-16 20:00:33 · 204 阅读 · 0 评论 -
【海亮DAY12(二)】背包的补充一
专辑:海亮集训-动态规划-背包 分三次更新 更新提示:第二次更新 背包主要分为以下几种:1、01背包问题2、完全背包问题3、多重背包问题4、混合三种背包问题5、二维费用的背包问题6、分组的背包问题7、有依赖的背包问题8、背包问题问法的变化第二次更新主要讲解前四种背包一、01背包...原创 2018-07-15 20:13:09 · 188 阅读 · 0 评论 -
【题解】花店橱窗
题目描述:假设你想以最美观的方式布置花店的橱窗。现在你有F束不同品种的花束,同时你也有至少同样数量的花瓶被按顺序摆成一行。这些花瓶的位置固定于架子上,并从1至V顺序编号,V是花瓶的数目,从左至右排列,则最左边的是花瓶1,最右边的是花瓶V。花束可以移动,并且每束花用1至F间的整数唯一标识。标识花束的整数决定了花束在花瓶中的顺序,如果I<J,则令花束I必须放在花束J左边的花瓶中。 例如,假设一束杜...原创 2018-07-02 20:05:04 · 1106 阅读 · 1 评论 -
【海亮DAY22(一)】线性动态规划
专辑:海量集训-动态规划 分两次更新 更新提示:第一次更新 引进一些概念:基本概念:动态规划(dynamic programming)是运筹学的一个分支,是求解多阶段决策过程最优化的数学方法。(十分抽象)用图表示: (呕心沥血的花了我五分钟的事件啊!)由上图可知,想要实现动态规划,就必须有以下阶段: ...原创 2018-07-15 18:57:25 · 316 阅读 · 0 评论 -
【题解&&海亮集训&&dp】子串
题目传送门题目描述:有两个仅包含小写英文字母的字符串 AA 和 BB。现在要从字符串 AA 中取出 kk 个互不重叠的非空子串,然后把这 kk 个子串按照其在字符串 AA 中出现的顺序依次连接起来得到一个新的字符串,请问有多少种方案可以使得这个新串与字符串 BB 相等?注意:子串取出的位置不同也认为是不同的方案。【输入格式】输入文件名为 substring.in。第一行是三个正整数 n...原创 2019-01-26 19:25:34 · 497 阅读 · 3 评论 -
【树形dp && 题解】 洛谷P3174 毛毛虫
题目传送门题目描述:对于一棵树,我们可以将某条链和与该链相连的边抽出来,看上去就象成一个毛毛虫,点数越多,毛毛虫就越大。例如下图左边的树(图1)抽出一部分就变成了右边的一个毛毛虫了(图2)。输入格式第一行两个整数N,M,分别表示树中结点个数和树的边数。接下来M行,每行两个整数a, b表示点a和点 b有边连接(a, b≤N)。你可以假定没有一对相同的(a, b)会出现一次以上。输出格式...原创 2019-04-03 20:00:59 · 401 阅读 · 1 评论 -
【题解 && dp】 dp例题 4
题目描述:大神zcc and zyb(my granddaughter)给定⼀棵n个点的边权树,由于他(她)太强了,所以他想考考你。求每一个以i为根节点的子树中以i为起点的最长链和次长链是多少?注: 最长链和次长链必须是彼此没有相同边的两条独立的链。样例输入格式第一行输入一个T((1<<T)≤220(1<<T)≤2^{20}(1...原创 2019-03-27 15:38:59 · 269 阅读 · 0 评论 -
【题解】树形dp例题5
题面描述:给定一棵n个节点的树,求其中每个点到其他节点的距离和。输入格式第一行一个整数n; 接下来n-1行是三个数x,y,z,表示x到y有一条长度为z的边; 数据保证给出的是一棵树。输出格式n行,一行一个数,第i行数字表示点i到其他点的距离和。样例数据input31 2 31 3 5output81113分析:我们先来考虑一下只做一个点的距离和该怎么做很...原创 2019-03-13 16:02:36 · 702 阅读 · 0 评论 -
【动态规划】树形dp
概念理解:我们学过的一般DP方程一般都是一维或者二维的,而数组是一种线性结构,具有很强的位置关系限制(一个挨着一个),所以一般在线性结构上的dp都很容易计算然而除了线性的数据结构之外,还有很多非线性的数据结构,最典型的就是树。由于树本身的特殊性质,树的局部性体现在其递归结构上:即以一个节点为根的子树是由它儿子的子树组成的,所以我们在解决树形DP问题的时候一般是选择按照层数从底向上...原创 2019-01-28 20:52:17 · 708 阅读 · 2 评论 -
【题解&&海亮集训&&dp】 洛谷 P1351 联合权值
题目传送门题目描述:无向连通图 GGG 有 nnn 个点,n−1n-1n−1 条边。点从 111 到 nnn 依次编号,编号为 iii 的点的权值为 WiW_iWi,每条边的长度均为 111。图上两点 (u,v)(u, v)(u,v) 的距离定义为 uuu 点到 vvv 点的最短距离。对于图 GGG 上的点对 (u,v)(u, v)(u,v),若它们的距离为 222,则它们之间会产生Wv×W...原创 2019-01-28 19:59:50 · 219 阅读 · 0 评论 -
【动态规划】 状态压缩 dp
当我们有时无法用普通的dp以及一些算法表示一些状态、解决一些问题的时候,我们就可以想到状态压缩动态规划。状态压缩动态规划一般使用二进制来表示一个问题的子问题是否使用过。例如:1 0 1(5)这上面的二进制指的是第一个和第三个问题已经求解过或者已经用过,但是第二个还没用过。当然存储时我们是不能用二进制存储的,所以我们一般都用二进制所对应的十进制存储正是这个原因,导致状压dp的效率与空间十分...原创 2019-01-27 20:49:54 · 1888 阅读 · 0 评论 -
【题解&&海亮集训&&dp】 洛谷P1879 玉米田
题目传送门题目描述:农场主John新买了一块长方形的新牧场,这块牧场被划分成M行N列(1 ≤ M ≤ 12; 1 ≤ N ≤ 12),每一格都是一块正方形的土地。John打算在牧场上的某几格里种上美味的草,供他的奶牛们享用。遗憾的是,有些土地相当贫瘠,不能用来种草。并且,奶牛们喜欢独占一块草地的感觉,于是John不会选择两块相邻的土地,也就是说,没有哪两块草地有公共边。John想知道,如果...原创 2019-01-27 20:11:19 · 318 阅读 · 0 评论 -
【题解&&海亮集训&&dp】 状态压缩dp 关灯问题II
题目传送门题目描述:现有n盏灯,以及m个按钮。每个按钮可以同时控制这n盏灯——按下了第i个按钮,对于所有的灯都有一个效果。按下i按钮对于第j盏灯,是下面3中效果之一:如果a[i][j]为1,那么当这盏灯开了的时候,把它关上,否则不管;如果为-1的话,如果这盏灯是关的,那么把它打开,否则也不管;如果是0,无论这灯是否开,都不管。现在这些灯都是开的,给出所有开关对所有灯的控制效果,求问最少要按几...原创 2019-01-27 15:42:42 · 359 阅读 · 0 评论