【内容】DP
步六孤明琪
这个作者很懒,什么都没留下…
展开
-
【HEOI2014】【BZOJ3611】大工程
【题目链接】BZOJ3611【前置技能】虚树树形DP【题解】关键点的数量和与NNN同阶,那么建虚树,剩下来的问题就在于树形DP了。树形DP记录四个值:一个端点为pospospos另一个端点在以pospospos为根的子树中的路径的最大长度maxnmaxnmaxn、最小长度minnminnminn、数量tottottot、长度和sumsumsum。转移要分pospo...原创 2018-06-03 22:09:25 · 128 阅读 · 0 评论 -
【ZJOI2008】【BZOJ1040】【LOJ10162】骑士
【题目链接】BZOJ1040LOJ10162【前置技能】树形DP【题解】题意是:给出一个环套树森林,求最大独立集。先考虑如何做树上的最大独立集的DP,这个问题比较基础。f[pos][0/1]f[pos][0/1]f[pos][0/1]表示以pospospos为根的子树中选了/没选节点pospospos的答案。转移方程f[pos][1]=∑f[son][0]f[pos][1]...原创 2018-10-22 21:04:12 · 188 阅读 · 0 评论 -
【JSOI2016】【BZOJ4753】最佳团体
【题目链接】BZOJ4753【前置技能】二分答案树上背包【题解】先二分一下答案(据说这个二分答案的过程也可以叫做0/1分数规划),假设现在二分的答案为midmidmid,检查是否存在符合条件的∑Pi∑Si≥mid∑Pi∑Si≥mid\frac{\sum P_i}{\sum S_i} \geq mid,移项整理,得到∑Pi−mid∗∑Si≥0∑Pi−mid∗∑Si≥0...原创 2018-09-14 08:23:19 · 150 阅读 · 0 评论 -
【APIO2010】【BZOJ1911】特别行动队
【题目链接】BZOJ1911【前置技能】斜率优化DP【题解】设计状态f[i]f[i]f[i]表示已经将111 ~ iii号士兵编好队的最大战斗力。答案就是f[n]f[n]f[n]。令sum[i]sum[i]sum[i]表示111 ~ iii号士兵的战斗力之和,那么由题意可得,转移方程f[i]=max{f[j]+a∗(sum[i]−sum[j])2+b∗(sum[i]...原创 2018-08-25 10:26:08 · 130 阅读 · 0 评论 -
【USACO2008Mar】【BZOJ1597】土地购买
【题目链接】BZOJ1597【前置技能】斜率优化DP【题解】首先要发现如果一个矩形的长和宽都小于等于另一个矩形,那么在选择较大的矩形时一定可以顺便把较小的矩形选掉。一开始我们就以x[i]x[i]x[i]为关键字排序,用一个单调栈来筛选一下矩形。那么最后剩下的矩形一定是xxx递增,yyy递减。设计状态f[i]f[i]f[i]表示已经购买了111 ~ iii号土地的最少...原创 2018-08-25 09:48:41 · 184 阅读 · 0 评论 -
【ZJOI2007】【BZOJ1096】仓库建设
【题目链接】BZOJ1096【前置技能】斜率优化DP【题解】设计状态f[i]f[i]f[i]表示在第iii个工厂建立仓库,且111 ~ iii号工厂中的产品都已存储好的最少花费。答案就是f[n]f[n]f[n]。转移方程f[i]=min{f[j]+cost(j,i)}+c[i]f[i]=min{f[j]+cost(j,i)}+c[i]f[i] = min\{f[j]...原创 2018-08-25 09:35:06 · 177 阅读 · 0 评论 -
【SDOI2014】【BZOJ3532】【LOJ2196】LIS
【题目链接】BZOJ3532【前置技能】DP网络流退流【题解】233【代码】#include<bits/stdc++.h>#define INF 0x3f3f3f3f#define LL long long#define MAXN 710#define MAXD 1410using namespace std;int ...原创 2018-07-19 17:18:36 · 255 阅读 · 0 评论 -
【六省联考2017】【BZOJ4870】【LOJ2143】组合数问题
【题目链接】BZOJ4870LOJ2143【前置技能】简单的组合数知识DP矩阵乘法【题解】将原问题转化一下,即求∑i%k=rCink∑i%k=rCnki\displaystyle\sum_{i\%k=r}^{ } C_{nk}^iCmn=Cm−1n−1+Cmn−1Cnm=Cn−1m−1+Cn−1mC_n^m=C_{n-1}^{m-1}+C_{n-1}^m,那么...原创 2018-06-17 10:57:22 · 159 阅读 · 0 评论 -
【SDOI2014】【BZOJ3530】【LOJ2194】数数
【题目链接】BZOJ3530【前置技能】AC自动机数位DP【题解】从题面中题面可以比较显然地看出算法:用数位DP解决计算范围内数的情况,而限制是一个字符串集合的匹配,用AC自动机解决。在AC自动机的每个节点上记录一个tagtagtag表示在该节点到根的fail树上的节点中是否存在集合中的串的结尾节点。那么tag=1tag=1tag=1时状态不合法,否则合法。设计...原创 2018-06-22 07:45:12 · 171 阅读 · 0 评论 -
【HNOI2014】【BZOJ3572】世界树
【题目链接】BZOJ3572【前置技能】树形DP虚树树上倍增【题解】关键点的数量和与NNN同阶,那么建虚树,剩下来的问题就在于树形DP了。先两次树形DP求出虚树上每个点的最近关键点和它们之间的距离。第一次DP自叶节点向上,考虑以该节点为根的子树中离该节点最近的关键点。第二次DP自根向下,考虑祖先节点的最近关键点对于该节点的影响。然后再遍历虚树上的每一条边,虚树...原创 2018-06-04 17:31:04 · 161 阅读 · 0 评论 -
【HNOI2008】【BZOJ1009】T考试
【题目链接】BZOJ1009【前置技能】DP矩阵乘法AC自动机KMP【题解】预处理出每一位后面填000~999可以走到哪一位,DP状态:f[i][j]f[i][j]f[i][j]表示现在是第iii位数字,匹配到第jjj位。转移比较显然,不多赘述。因为nnn比较大,所以要用矩阵乘法优化转移。这里觉得AC自动机写起来比较方便,所以代码给出的是AC自动机的写法。时间复杂度O(...原创 2018-11-19 09:53:49 · 137 阅读 · 0 评论