动态规划DP
文章平均质量分 86
pigzhouyb
一个来自浙江的可爱的萌萌哒的肥肥胖胖的OIer
展开
-
『树形背包』摧毁树形图
Problem\mathrm{Problem}ProblemSolution\mathrm{Solution}Solution显然是树形背包,很容易设出状态f[x][i][0/1]f[x][i][0/1]f[x][i][0/1]表示以iii为根的子树中,匹配树对mmm取模为iii,点xxx是否匹配的删边方案数。由于是最大匹配,若当前点xxx没有匹配且某一个子节点也没有匹配,则这两个点必须要...原创 2019-11-07 18:37:47 · 169 阅读 · 0 评论 -
『动态规划·数论优化』先进序列
题目描述题解先排序,很容易得到f[i]=f[j]+1,gcd(a[i],a[j])=1.f[i]=f[j]+1,gcd(a[i],a[j])=1.f[i]=f[j]+1,gcd(a[i],a[j])=1.我们可以对每一个数分解质因数,寻出到数组内,更新最大的fif_ifi值。然后每次只需要在质因数内找最大值更新即可。由于分解质因数,时间复杂度:O(n logn)O(n\ l...原创 2019-07-19 19:17:11 · 187 阅读 · 0 评论 -
『动态规划·状态压缩·概率期望』礼物
题目描述题解首先普及一个知识点,每一件物品选到的概率是pip_ipi,则在所有物品里面至少选到一件的概率是:∑pi\sum p_i∑pi.然后就是很明显的概率状压了。我们设f[i]f[i]f[i]表示状态为i的期望次数。则一定有:f[i]=∑j in if[i去掉j]∗pj+(1−∑j in ipj)∗f[i]+1f[i]=\sum_{j\ ...原创 2019-07-05 21:29:40 · 174 阅读 · 0 评论 -
『动态规划·背包』Gift
题目描述题解如果当前的第iii个物品不选,且在不选的物品中是最小的,那么这就意味这体积小于aia_iai时不会再有其它物品填充背包,那么对于其它的物品进行完01背包后所贡献的答案是:∑i=m−ai+1mf[i]\sum_{i=m-a_i+1}^{m}f[i]i=m−ai+1∑mf[i].但是这么做有两个难点:时间复杂度不够优秀,且无法保证当前物品是否是没有选则的物品中最小的。因此我...原创 2019-07-05 19:58:41 · 192 阅读 · 0 评论 -
『动态规划·状态压缩』广场铺砖问题
问题1有一个n行m列的广场,需要用1*2小砖铺盖,小砖之间互相不能重叠,问有多少种不同的铺法?题解设f[i][j]f[i][j]f[i][j]表示第iii行,状态为jjj的方案数。在状态jjj中,111表示竖着放长方形的上半部分。000表示其余部分。显然上一排空缺的部分肯定是要竖着放置的。就看剩下横着的能不能连续的两个两个放置。状态转移很显然:f[i][j]=∑f[i−1][k]f[i...原创 2019-07-02 09:44:08 · 663 阅读 · 0 评论 -
『状态压缩DP』炮兵阵地
题目描述题解这道题真的毒瘤…首先观察到列的范围很小,这启示我们使用状态压缩算法。我们可以预处理出所有横排不互相攻击的数字,显然这些数只有一百来个。用b数组存储。我们观察到一行是否可以防止炮兵和上两行来决定,我们设f[i][j][k]f[i][j][k]f[i][j][k]表示第iii行的状态为bjb_jbj,第i−1i-1i−1行状态为bkb_kbk可以放置的最多炮兵。因此我们设...原创 2019-06-17 21:30:54 · 237 阅读 · 0 评论 -
状压DP常见套路总结
判断一个数有没有相邻的1:(x<<1)&x判断一个数有没有连续三个相邻的1:(x<<1)&(x<<2)&x判断两个数在相同位数上有没有同时出现1:x&y...原创 2019-06-17 21:12:40 · 295 阅读 · 0 评论 -
『环形DP』Naptime
题目描述题解如果这是一个线性问题就很简单了。我们最直观的想法是设f[i][j]f[i][j]f[i][j]表示到第iii个时段,进行了jjj次休息的最大恢复。自习发现不值当现在和当前处于什么状态,于是我们设f[i][j][0/1]f[i][j][0/1]f[i][j][0/1]表示到了第iii个时段,进行了j次休息,有(111)没有(000)睡觉或准备睡觉的最大恢复值。很容易推导状态转...原创 2019-06-17 16:01:07 · 177 阅读 · 0 评论 -
『树形DP·换根』The Crazy Tree(毒瘤)
题目描述给定一棵 nnn 个结点的树,结点编号为 1−n1-n1−n,iii号结点的权重记为 wiwiwi(每个点的权值各不相同)。我们定义一个“疯子树”为: 1. 是一个联通子图。 2. 我们将子图内的点按照权重从小到大排序后序列为 b1,b2,…,bmb1,b2,…,bmb1,b2,…,bm,对于任意的i(i<m)i(i<m)i(i<m),bibibi到bi...原创 2019-06-17 15:43:30 · 665 阅读 · 0 评论 -
『线性DP·LIS非重复方案计数』Buy low,Buy lower
题目描述题解很显然我们可以计算出最原始的最长上升子序列。我们可以先预处理一遍最基础的DP得到答案。接下来考虑不重复的方案数:不难发现,对于当前位置i而言,前面出现的和iii相同的数一定不会成为答案。因为iii包括了原先的答案,且在原答案的基础上新增答案,完全能够将原来的点覆盖。因此选择了iii的方案,前面的方案就会清空。对于方案的计算,有两点:若长度为111,则方案为111.否则...原创 2019-06-16 21:17:23 · 194 阅读 · 0 评论 -
『树形DP·换根法』Accumulation Degree
题目描述有一个树形的水系,由 N-1 条河道和 N 个交叉点组成。我们可以把交叉点看作树中的节点,编号为 1~N,河道则看作树中的无向边。每条河道都有一个容量,连接 x 与 y 的河道的容量记为 c(x,y)。河道中单位时间流过的水量不能超过河道的容量。有一个节点是整个水系的发源地,可以源源不断地流出水,我们称之为源点。除了源点之外,树中所有度数为 1 的节点都是入海口,可以吸收无限多...原创 2019-06-16 16:08:34 · 1591 阅读 · 0 评论 -
『区间DP·树形结构转换』金字塔
题目描述虽然探索金字塔是极其老套的剧情,但是这一队 探险家还是到了某金字塔脚下。经过多年的研究,科 学家对这座金字塔的内部结构已经有所了解。首先, 金字塔由若干房间组成,房间之间连有通道。如果把 房间看做节点,通道看做边的话,整个金字塔呈现一 个有根树结构,节点的子树之间有序,金字塔有唯一 的一个入口通向树根。并且,每个房间的墙壁都涂有 若干种颜色的一种。探险队员打算进一步了解金字塔的结构,为...原创 2019-06-11 08:45:36 · 255 阅读 · 0 评论 -
『区间DP』Polygon
题目描述Polygon is a game for one player that starts on a polygon with N vertices, like the one in Figure 1, where N=4. Each vertex is labelled with an integer and each edge is labelled with either the s...原创 2019-06-11 07:49:17 · 165 阅读 · 0 评论 -
『多重背包的可达性问题』Coins&划分大理石
问题描述:coinsSilverland的人们使用硬币。他们有价值A1,A2,A3的硬币…一个Silverland美元。有一天Tony打开他的钱箱,发现有一些硬币。他决定在附近的商店买一块非常漂亮的手表。。 他想支付确切的价格(没有变化),他知道价格不会超过m。但他不知道手表的确切价格。你要编写一个程序,读取n,m,A1,A2,A3 … An和C1,C2,C3 … Cn对应于值为A1,A2,A...原创 2019-06-10 18:31:23 · 346 阅读 · 0 评论 -
『01背包』陪审团
题目描述在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定。陪审团是由法官从公众中挑选的。先随机挑选nnn个人作为陪审团的候选人,然后再从这nnn 个人中选mmm人组成陪审团。选mmm 人的办法是:控方和辩方会根据对候选人的喜欢程度,给所有候选人打分,分值从000 到202020。为了公平起见,法官选出陪审团的原则是:选出的mmm 个人,必须满足辩方总分DDD和控方总分PPP的差的绝对值∣...原创 2019-06-10 16:37:40 · 434 阅读 · 0 评论 -
『数学推导·平面DP』「NOI1999」棋盘分割
题目描述题解这道题难就难在这一个均方差公式怎么搞,我们不妨对这一个算式进行化简。=∑(xi2−2∗xi∗x‾+n∗x‾2)n=\sqrt \frac{\sum (x_i^2-2*x_i*\overline x+n*\overline x^2)}{n}=n∑(xi2−2∗xi∗x+n∗x2)=∑xi2−2∗∑xi∗x‾+n∗x‾2n=\sqrt \frac{\sum x_i^2-...原创 2019-06-15 18:21:10 · 140 阅读 · 0 评论 -
『动态规划·贪心·方案输出』饼干
题目描述题解我们发现这道题,每个人除了贪婪度之外都是没有区别的,并且顺序对答案没有影响,显然为了时贪婪度大的人做出尽可能少的贡献,应该获得尽量多的饼干:否则将最大饼干的人和最大贪婪度的人交换一下饼干,就可以得到更优的答案。因此我们得到一个贪心策略:贪婪度大的人所分的饼干一定不小于贪婪度比它小的人。我们将贪婪度排序,保证选取的饼干单调不上升。除此之外,我们还可以得到一个十分优美的性质:所有...原创 2019-06-08 14:31:12 · 379 阅读 · 0 评论 -
『质因子分解·树形DP』GCD count
题目描述题解显然GCDGCDGCD问题肯定是要想到分解质因数的,而且根据数据范围得到每一个数的质因数一定不会很多。我们可以设状态f[i][j]f[i][j]f[i][j]表示的枚举到以iii为根的子树中,gcdgcdgcd为jjj的最长链。第二维状态由于无法用静态数组标记,我们可以采用vectorvectorvector来进行维护。因此我们在子树与子树的转移时,可以双重循环枚举第二维,当质...原创 2019-08-02 18:53:32 · 353 阅读 · 0 评论 -
『动态规划』Multiplicity
题目描述题解由于又是整除的题,我们便只能够从整除的特性上去考虑这一个问题了。可以证明,一个数的因数不超过n\sqrt nn 个,这意味着我们可以在因数上做文章。设f[i][j]f[i][j]f[i][j]表示前iii个数,放在第jjj个位置的方案数。对于当前数的每一个因数xxx,有:f[i][x]+=f[i−1][x−1]f[i][x]+=f[i-1][x-1]f[i][x]+=f[...原创 2019-08-03 08:31:56 · 122 阅读 · 0 评论 -
『动态规划』Easy Problem
题目描述题解我们可以设f[i][1/2/3/4]f[i][1/2/3/4]f[i][1/2/3/4]表示前i位,每一个数字分别到h,a,r,dh,a,r,dh,a,r,d不满足的方案数。即,f[1]f[1]f[1]表示不存在子序列h,f[2]f[2]f[2]表示不存在子序列hahaha,f[3]f[3]f[3]表示不存在子序列harharhar,f[4]f[4]f[4]表示不存在子序列har...原创 2019-08-03 08:59:30 · 217 阅读 · 0 评论 -
『贪心·动态规划』分组
Problem\mathrm{Problem}ProblemSolution\mathrm{Solution}Solution可以想到,当任意两个人权值不同时,一定是w值大的匹配w值小的。当www值相同时,则有p=1p=1p=1时匹配p=2p=2p=2或333,p=3p=3p=3匹配333和222.因此我们当p=2p=2p=2时赋值为p=4p=4p=4,那么就有ppp小的为组长,ppp大...原创 2019-10-11 16:26:38 · 211 阅读 · 0 评论 -
『DP·单调队列』CodeForces - 985E Pencils and Boxes
Problem\mathrm{Problem}Problem纠正luogu的一个mistake:是∣ai−aj∣≤d.|a_i-a_j|\le d.∣ai−aj∣≤d.Solution\mathrm{Solution}Solution我们可以采用DP的思想,设f[i]f[i]f[i]表示到iii为止分成若干组的可行性。显然我们可以通过排序,想原来的序列分成连续的几段。那么就有:f[...原创 2019-10-02 13:44:07 · 134 阅读 · 0 评论 -
『二分答案·贪心·树形DP』[POI2011]DYN-Dynamite
Problem\mathrm{Problem}Problem给一棵树,书上有一些关键节点,要求你选m个点,使得关键节点到这些点中距离的最小值的最大值最小,求这个值Solution\mathrm{Solution}Solution这道题二分显然,显然之后就没有然后了。我们采用自底向上的类似于树形DP的思想考虑这个问题,那么根据二分答案的套路我们就可以转化成:所有关键点到选中的关键点的路径在小...原创 2019-09-26 15:06:45 · 191 阅读 · 0 评论 -
『区间状压DP』[Haoi2016]字符合并
Problem\mathrm{Problem}Problem有一个长度为 n 的 01 串,你可以每次将相邻的 k 个字符合并,得到一个新的字符并获得一定分数。得到的新字符和分数由这 k 个字符确定。你需要求出你能获得的最大分数。1<=n<=300,0<=ci<=1,wi>=1,k<=8Solution\mathrm{Solution}Solution首...原创 2019-09-15 14:05:48 · 174 阅读 · 0 评论 -
『状压DP·dilworth定理』BZOJ4160:Exclusive Access 2
Problem\mathrm{Problem}Problem给出 N 个点M 条边的无向图,定向得到有向无环图,使得最长路最短。Solution\mathrm{Solution}Solution现在有一个定理叫做dilworth定理。具体的内容是这样的:最长路径(点的个数) = 最小反链划分一个集合为反链表示这个集合任意两点不能连通。最小反链划分表示整个图最少由多少个反链来划分。其中这...原创 2019-09-15 09:32:21 · 187 阅读 · 0 评论 -
『状压DP』[PA2014]Pakowanie
Problem\mathrm{Problem}Problem你有n个物品和m个包。物品有重量,且不可被分割;包也有各自的容量。要把所有物品装入包中,至少需要几个包?Solution\mathrm{Solution}Solution显然,先装大背包再装小背包一定是最优策略。因此我们需要对背包的体积排序。而我们所需要安排的是背包里具体装的是哪些物品,我们考虑状压DP。设f[s]f[s]f[...原创 2019-09-15 09:15:36 · 141 阅读 · 0 评论 -
用记忆化搜索解决数位DP的套路总结
Problem\mathrm{Problem}ProblemProblem1\mathrm{Problem}1Problem1区间[L,R]中每个数码出现的次数。The Counting Problem——多组询问ZJOI2007 数字统计——单组询问Problem2\mathrm{Problem}2Problem2求区间[L,R]中,在二进制下0的个数比1多的有多少个。Rou...原创 2019-09-03 08:39:02 · 381 阅读 · 0 评论 -
『计数DP·输出方案』Decorative Fence
Problem\mathrm{Problem}Problem理查德刚刚完成了新房子的建造。现在房子唯一遗漏的是一个可爱的小木栅栏。他不知道如何制作木栅栏,所以他决定订购一个。不知怎的,他得到了ACME Fence Catalogue 2002,这是可爱的小木栅栏的终极资源。在阅读了他已经知道的序言后,是什么让一个小木栅栏变得可爱。木栅栏由N个木板组成,垂直排成一排。当且仅当满足以下条件时,栅栏...原创 2019-09-02 14:34:29 · 195 阅读 · 0 评论 -
『计数DP』CF559C:Gerald and Giant Chess
Problem\mathrm{Problem}Problem给定一个H*W的棋盘,棋盘上只有N个格子是黑色的,其他格子都是白色的。在棋盘左上角有一个卒,每一步可以向右或者向下移动一格,并且不能移动到黑色格子中。求这个卒从左上角移动到右下角,一共有多少种可能的路线。Solution\mathrm{Solution}Solution我们设我们将每一个黑点坐标排序。我们设f[i]f[i]f[i]...原创 2019-09-02 14:11:43 · 110 阅读 · 0 评论 -
『图论·状态压缩DP』AT2657:Mole and Abandoned Mine
Problem\mathrm{Problem}Problem给一个n个点m条边的无向连通图(不存在自环或重边),每条边有一个边权,要求割掉若干条边,使1到n只有1条路径(不经过重复点),问割掉的边权和最小是多少。Data\mathrm{Data}DataSolution\mathrm{Solution}Solution很显然根据数据规模我们可以确定是状态压缩,我们考虑如何转移。状态很简...原创 2019-08-31 19:15:48 · 171 阅读 · 0 评论 -
『树形DP·换根』Kamp
题目描述题解这道题O(n2)O(n^2)O(n2)很简单,就是一个简单的有根树树形DP,即经过每一个特殊点的边权*2-根到某一个特殊点的最长链。对于部分1,我们假设处理了f[x]f[x]f[x],对于一条边(x,y,v)(x,y,v)(x,y,v)来说,在一般情况下有:f[y]=f[x]f[y]=f[x]f[y]=f[x]若在以y为跟的情况下可以不到达x,也就是size[y]=ksiz...原创 2019-08-22 08:11:20 · 158 阅读 · 0 评论 -
『数位DP』POJ3971:Scales
题目描述有一个物品重量为www,现在你有1,2,4,…,2n1,2,4,…,2^n1,2,4,…,2n重量的砝码,问有多少种方法可以使得天平平衡。www以二进制给出。题解观察到砝码都是2的整次幂,在二进制中只有一位数是111,其余都是000.我们可以将一组砝码的重量归为x,另一组为y,求满足如下条件的方案数:{x and y=0x+w=y\begin{cases}...原创 2019-08-12 15:27:34 · 116 阅读 · 0 评论 -
『树形DP』[IOI2005]Riv 河流
题目描述题解我们设f[x][j][k]f[x][j][k]f[x][j][k]表示运输完了以xxx为根的子树,iii的祖先jjj建立了伐木场,建立了kkk个伐木场的最小运输代价。由于题目中说明了0号点一定要建立伐木场,故结果是f[0][0][K].f[0][0][K].f[0][0][K].我们可以将这道题拆分成两部分,我们另f数组表示在当前状态下,不选择选择iii的最小花费;ggg数组表...原创 2019-08-24 21:39:34 · 181 阅读 · 0 评论 -
『期望DP』POJ2096:Collecting Bugs
题目描述题意:s个系统n种bug,每天找出一个bug,种类的概率是1/n,系统的概率是1/s。问:每个系统至少找出一个bug;每种类的bug都被找出。的期望天数(0<n, s<=1000)、题解这道题目一共有两个维度,bug个系统,这了对应了两个状态。我们设f[i][j]f[i][j]f[i][j]为i个bug,s个系统,还需要期望的步数。我们要采用逆推。(逆推的原因就在于状态...原创 2019-08-10 20:33:29 · 111 阅读 · 0 评论 -
『完全背包+线性DP』画山
题目描述题解如果不是输出本质不同,我们只需要设fi][j]表示画到了位置(i,j)的方案数。很容易得到状态转移方程:f[i][j]=∑k=1pf[i−ak][j−bk]f[i][j]=\sum_{k=1}^{p} f[i-a_k][j-b_k]f[i][j]=k=1∑pf[i−ak][j−bk]现在考虑如何解决本质不同的问题。我们发现对于每一个点,相同斜率转移过来的长度不能重复,...原创 2019-08-19 18:40:55 · 129 阅读 · 0 评论 -
『二分答案·DP』Levko and Array
题目描述即最小化相邻元素差的最大值。题解我们发现修改哪些数很难查找,显然需要二分答案这个最大值。我们需要保证相邻两个元素的差都小于这个二分答案的数值,因此我们可以采用DP解决。我们设f[i]f[i]f[i]表示一定保留第i个数字的情况下,最多能够保留多少个数字。可以得到:f[i]=max(f[j])+1,∣a[i]−a[j]∣≤mid∗(i−j)f[i]=max(f[j])+1,|a[...原创 2019-08-03 13:50:00 · 221 阅读 · 0 评论 -
『输出方案的区间DP』Folding
ProblemBill试图通过折叠其中的重复子序列来紧凑地表示从“A”到“Z”的大写字母字符序列。例如,表示序列AAAAAAAAAABABABCCD的一种方法是10(A)2(BA)B2(C)D。他通过以下方式正式定义了折叠的字符序列以及它们的展开变换: 包含从“A”到“Z”的单个字符的序列被认为是折叠序列。展开此序列会产生单个字符本身的相同序列。 如果S和Q是折叠序列,则SQ也是折叠序列。如果...原创 2019-06-13 19:23:35 · 179 阅读 · 0 评论 -
『动态规划·奇葩状态设计』消木块 Blocks
题目描述题解显然是一个区间DP,最直观的思路就是设置状态f[l][r]f[l][r]f[l][r]为区间[l,r][l,r][l,r]的最高得分。但是对于中间消除以后再消边上操作会十分困难,我们这里采用一种费用提前计算的方法:我们设f[l][r][k]f[l][r][k]f[l][r][k]表示在区间[l,r][l,r][l,r]消完以后,还要消在rrr右边颜色和rrr一样的kkk个的方...原创 2019-06-12 21:50:18 · 280 阅读 · 0 评论 -
『树直径·树形DP』「四校联考」平衡树
题解题意很简明扼要,在一棵树上删除一条边并添加一条边,使得树的最长链最小。很显然,删去的边一定在树的最长链上;否则,尽管其他的边如何变小,树的最长链是始终不变的。因此我们需要枚举最长链上的每一条边,并将其删除;最后统计删去后的最长链是多少。显然,当一棵树treetreetree的最长链删去以后,便会分裂成子树tree1tree1tree1和tree2tree2tree2;那么最后的直径...原创 2019-05-23 21:32:26 · 173 阅读 · 0 评论 -
【动态规划·习题】金明的预算方案:有依赖的背包问题
Problem金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NN元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件 附件电脑 打印机,扫描仪书柜 图书书桌 台灯,文具工作椅 ...原创 2019-02-23 21:28:37 · 234 阅读 · 0 评论