
======动态规划======
文章平均质量分 60
「已注销」
这个作者很懒,什么都没留下…
展开
-
2017衢州联赛第四题题解
2017 环游衢州原创 2017-05-25 21:30:25 · 381 阅读 · 0 评论 -
[字符串hash+DP]HDU4622 Reincarnation 题解
题目大意给出字符串s,多组询问子串中本质不同子串个数。解题报告典型的后缀树/后缀自动机模板题,然而都不会,所以直接用hash。考虑枚举出一个子串出现在[L,R],那么如果没有重复,所有包含着这个子串[L,R]的区间答案+1,但是如果出现了重复,那么就需要-1。但之前处理的时候有些区间已经去过重了,不能误删,这里可以在之前处理的时候用hash存储每个相同长度的子串,然后如果找到重...原创 2018-08-23 14:36:35 · 266 阅读 · 0 评论 -
[DP]HDU6415(2018多校训练赛第九场 Problem A) Rikka with Nash Equilibrium 题解
题目大意给出一个n∗mn∗mn*m的网格,现要在网格中填入1,2,……,n∗mn∗mn*m,如果一个格子数比同行同列的数都大,那么就说这个格子占领了这行这列,求只有一个格子占满一行一列的方案数。解题报告因为n∗mn∗mn*m是最大的,所以他肯定占领一行一列,所以这样的话我们就必须保证其他的数都不能同时占领一行一列了。如果我们随便把n∗mn∗mn*m放在某个格子上,接下来放n∗m...原创 2018-08-23 23:55:23 · 279 阅读 · 0 评论 -
[DP](计蒜之道2016程序设计大赛初赛第六场)微软的员工福利 题解
[DP] (计蒜之道2016初赛第六场) 微软的员工福利 题解题目大意给出一个nnn个节点的有根树,每个点可以赋予给定的两个值v[i][0/1]v[i][0/1]v[i][0/1]其中之一,这棵树的权值就是所有节点的值,但是对于每个非叶节点节点iii而言,如果在它和它所有儿子节点中最大值与最小值的差大小为xxx,那么需要在树的权值中扣除i∗666∗⌈x1000⌉i*666*\lceil\fra...原创 2018-09-24 20:58:09 · 282 阅读 · 0 评论 -
[二分+DP]BZOJ1181 [CROATIAN2009]IZBROI选举 题解
题目大意在地区选举中有nnn个政党争夺mmm个议会席位,总共有VVV张票数,其中已经有一些票已经投出,议会席位的分配方式如下:设viv_ivi为第iii个政党的票数,第iii个政党有SiS_iSi个席位,初始所有政党都没有席位,先把投票数小于5%5\%5%的政党剔除,每次把席位给vi/(Si+1)v_i/(S_i+1)vi/(Si+1)最大的政党,问每个政党能得到的席位数的最大和最小值。...原创 2018-10-03 15:27:26 · 385 阅读 · 0 评论 -
[DP]BZOJ 1939 [Croatian2010] Zuma 题解
[DP]BZOJ 1939 [Croatian2010] Zuma 题解题目描述祖玛游戏是这样的:有一列nnn个有颜色的珠子,如果触碰连续KKK个同色的珠子,那么它们就会消失,其余的珠子按照原来顺序接在一起。现在你每次可以发射任意颜色的珠子,发射在任意位置(开头、结尾以及任意两个之间)。注意,如果有连续kkk个或更多同色的珠子,你可以不立即消去他们,详见样例 3。问最少需要几发可以消掉所...原创 2018-10-23 20:20:35 · 348 阅读 · 0 评论 -
[状压DP]NOIP2017Day2T2 宝藏 题解
题目大意给出一个无向图,一开始选中一个点进行扩展成一棵树,初始节点深度为0,每次建边的代价为子节点到父节点的距离乘上子节点的深度,求最小建边代价。 n≤12n\le12n≤12解题分析见nnn那么小肯定想到状压DP了,然后用二进制枚举状态,可以用f[S]f[S]f[S]表示状态为SSS(0为不在树上,1为在树上),但是需要乘上子节点的深度,那么如何枚举?考虑加一维f[i][S]f[i][S]...原创 2018-11-06 19:25:02 · 307 阅读 · 0 评论 -
[记忆化DFS]NOIP2017Day1T3 逛公园 题解
解题分析题面网上肯定找得到,不贴了……仍然填大坑ing……当初在考场上看到了此题,由于发现k≤50k\le50k≤50,所以自然要在kkk上搞事情。设f[i][j]f[i][j]f[i][j]表示到达i点此时的路径总长度比最长路长j的题解,初始最短路求一趟,然后转移……转移……我又写了个spfa神奇转移骗走60分……这道题可以考虑拓扑+DP转移,然而也可以记忆化DFS转移,由于记忆化DFS...原创 2018-11-06 21:06:27 · 340 阅读 · 0 评论 -
[数位DP]BZOJ 3131 [Sdoi2013]淘金 题解
题目大意有一个大小为N∗NN*NN∗N的矩阵,一开始矩阵内每一个数都是1,每一次变换后坐标为(i,j)(i,j)(i,j)内的数会累加到(f(i),f(j))(f(i),f(j))(f(i),f(j)),其中f(x)f(x)f(x)为各位数的累积(如果f(x)=0f(x)=0f(x)=0,那么直接消失)。问一次变换后矩阵内前KKK大的数之和。N≤1012,K≤106N\le10^{12},K\...原创 2018-11-02 09:17:05 · 236 阅读 · 0 评论 -
[区间DP]【NOIP2003T3】加分二叉树 题解
洛谷传送门在此解题报告一开始以为是树形DP,然后各种推理,就发现各种MLE。后来无耻的查了题解。再推一下,MD,这是个区间DP啊。由于中序序列刚好是1…n,所以想到从里面找一个为根,然后就有左右两子树,然后又是对这两子树又分别找根。容易想到区间DP定义f[i][j]为i…jf[i][j]为i…j的树的最大权值。g[i][j]g[i][j]表示最大值时的根。 转移方程如下:原创 2017-11-04 16:38:02 · 354 阅读 · 0 评论 -
[DP]【NOIP2015D2T2】子串 题解
传送门 洛谷:https://daniu.luogu.org/problem/show?pid=2679 UOJ:http://uoj.ac/problem/149解题分析一开始感觉像01背包,不过推了好久模型都建不起来,然后看了题解,三维的 f[i][j][k][0/1]f[i][j][k][0/1]表示A串匹配到第i位,B串匹配到第j位,用了k个子串的方案数,其中第i位不要/要加入那么原创 2017-10-24 16:05:05 · 374 阅读 · 0 评论 -
[状压DP]LibreOJ #6177. 「美团 CodeM 初赛 Round B」送外卖2 题解
(传送门)题目大意已知一个有n个节点m条边的有向图,给出k个任务,每个任务从Li开始,到Ri结束,要求在Si接收货物并且在时间结束前Ti送达。(领货和交货不需要消耗时间),问最多能做多少个任务(注意,可以有多个货物在手上)。解题分析考虑到这题的k比较小,可以DFS或者是状压DP,DFS没什么好想法,那么开始思考状压DP。如果求最多能完成几个任务有点烦,可以将货物情况进行状压,由于每个货物可能未送达,原创 2017-10-17 09:49:54 · 445 阅读 · 0 评论 -
POJ 1678[I Love this Game!]题解
(传送门) 题目大意 给定n个数和一个区间[L,R],双方轮流操作,要求第一个人要先选一个数,这个数在区间[L,R]上,然后第二个人选一个数,这个数要比第一个人选的数大,而且两数之差在区间[L,R]上,当其中有一人无法取数时,游戏结束,此时先手获利的多少在于他选的数的和与后手的选的和的差。现在作为先手的你需要在后手无论如何都做出最优策略的情况下,让自己的获利最大。(注意你有可能会亏损,这时输出最原创 2017-07-22 22:18:15 · 512 阅读 · 0 评论 -
斜率DP优化
因为NOIP到来开始狂补算法,不知道要不要考斜率DP优化。 PS:以下出现sum表示前缀和斜率优化主要优化与线性DP,一般的线性DP,转移方程: f[i]=min(f[j]+sum[i]−sum[j])f[i]=min(f[j]+sum[i]-sum[j]) f[i]=min(f[j]+a[j]+a[i])f[i]=min(f[j]+a[j]+a[i]) 这类线性DPi和j都可以分开计算,所原创 2017-10-19 15:02:13 · 271 阅读 · 0 评论 -
[斜率DP优化]BZOJ 1597: [Usaco2008 Mar]土地购买 题解
(传送门)题目描述给出n块土地,第i块长度为xix_i,宽度为yiy_i,一次可以购买任意数目土地,每次购买的价格为所有这次购买的土地中max{xi}∗max{yi}max\{x_i\}*max\{y_i\},求购买全部土地最少需要多少钱。解题分析首先对于一块土地i,如果存在另一块土地j,有xj>xi,yj>yix_j>x_i,y_j>y_i,那么说明i不可能对答案会有影响,所以可以筛去i,所以可以原创 2017-10-20 11:46:10 · 263 阅读 · 0 评论 -
[斜率DP优化]BZOJ 1911: [Apio2010]特别行动队 题解
(传送门)题目大意给出一个有n个数的数组aia_i,要求将a分割成若干个区间,每个区间的价值是 令这个区间所有数的和为x,则该区间价值为A*x*x+B*x+C一个分割方案ans=所有分割的区间的价值和,求最大的ansans解题分析明显的线性DP,直接斜率优化。转移方程 f[i]=max{f[j]+A∗(sum[i]−sum[j−1])2+B∗(sum[i]−sum[j−1])+C}f[i]=原创 2017-10-20 15:03:07 · 320 阅读 · 0 评论 -
[状压DP]【NOIP2016D2T3】愤怒的小鸟 题解
【题目描述】Kiana 最近沉迷于一款神奇的游戏无法自拔。简单来说,这款游戏是在一个平面上进行的。有一架弹弓位于 (0,0)(0,0) 处,每次 Kiana 可以用它向第一象限发射一只红色的小鸟,小鸟们的飞行轨迹均为形如 y=ax2+bxy=ax^2+bx 的曲线,其中a,b a,b是 Kiana 指定的参数,且必须满足 a<0a<0,a,ba,b 都是实数。当小鸟落回地面(即 xx 轴)时,它就会原创 2017-10-21 10:36:58 · 929 阅读 · 0 评论 -
[01背包]【NOIP2014D1T3】飞扬的小鸟 题解
写在前面:所有背包类的DP我都最后写成01背包了……已经习惯这么用,3年了…… ~~所以看到小标题写01背包别吃鲸~~洛谷传送门在此 UOJ传送门在此解题分析不得不说这道题对付我这个PJ组水平蒟蒻还是很有用的。O(nm2)O(nm^2)的思路比较简单:f[i][j]f[i][j]表示走到第i列第j行至少需要走几步,伪代码如下for i= 1 ~ n for j= 1 ~ m原创 2017-10-23 20:35:53 · 381 阅读 · 0 评论 -
NOIP2016day1T3 换教室 (BZOJ 4729)
换教室(classroom)【题目分析】 其实只有背景比较麻烦,如果多了解一下期望这个概念,这个题就一点也不难了。 下面仅由DP的角度看这题: 可以发现两节课之间走什么样的路仅与这两节课有没有申请以及申请有没有成功有关,所以可以定义: f[i][j][0..1]:上完i节课,已经用了j次申请,其中第i次已申请的花费体力的期望的最小值转移方程……其实知道期望这个概念后转移方程很简单:原创 2017-05-21 18:42:55 · 261 阅读 · 0 评论 -
[期望DP] LibreOJ #6178. [美团 CodeM 初赛 Round B] 景区路线规划 题解
(传送门)题目大意题目说的相当清楚了,不解释,点传送门。解题分析这道题就是利用期望的线性的性质来做。所以想到DP,但是正推会有点难,可以想到从x相邻的节点走到x的概率是不同的,但是从x走到相邻的节点概率是相同的,所以可以考虑逆向处理 f[i][j][0/1]:现在走到第i个景点,从j时刻开始走(配合倒推……),(小y/他的妹子)的开心度的期望值则转移方程为(推的时候把0/1这一维省略掉,反正不原创 2017-10-15 21:49:00 · 433 阅读 · 0 评论 -
[DP]hihoCoder #1147 时空阵 题解
题目大意给出一个nnn个点的图,现允许任意两点之间建立长度为1的无向边(不允许重边),问有多少种建图方案满足1到nnn的最短路距离为KKK。n,K≤100n,K\le100n,K≤100解题分析很妙的DP!可以考虑对这个图进行分层,第iii层上所有点的最短路距离都为iii,那么1在第0层,nnn就在第KKK层,每一层都只能与上一层或这一层中的节点相连。设f[i][j][k]f[i][j][k...原创 2018-11-02 20:43:25 · 320 阅读 · 0 评论