dp
文章平均质量分 52
bluelanzhan
这个作者很懒,什么都没留下…
展开
-
洛谷P2766最长不下降子序列
第一问dp一下就好第二问把一个数分成两个点,i,i+n,i到i+n建一条边容量为1的边,表示这个数可以选一次0为源点,2n+1为汇点,0,i建一条边容量为1的边表示有以i开头长度为max的最长不下降序列,i+n,hui建一条边容量为1的边表示有以i结尾长度为max的最长不下降序列,跑最大流第三问 残余网络(表示还剩那些数未选)建立四条边 add(1,n+1,1...原创 2018-05-22 22:42:40 · 275 阅读 · 0 评论 -
noi2009 管道取珠(神dp...)
管道取珠是小X很喜欢的一款游戏。在本题中,我们将考虑该游戏的一个简单改版。游戏画面如图1所示:(图1)游戏初始时,左侧上下两个管道分别有一定数量的小球(有深色球和浅色球两种类型),而右侧输出管道为空。每一次操作,可以从左侧选择一个管道,并将该管道中最右侧的球推入右边输出管道。例如:我们首先从下管道中移一个球到输出管道中,将得到图2所示的情况。(图2)假设上管道中有n个球, 下管...原创 2018-11-05 22:11:54 · 203 阅读 · 0 评论 -
[USACO09MAR]清理Cleaning Up(dp)
题意翻译很久很久以前,约翰只会做一种食品;而现在约翰能给他的NNN (1≤N≤40000)(1 \leq N \leq 40000)(1≤N≤40000)头奶牛供应MMM (1≤M≤N)(1 \leq M \leq N)(1≤M≤N)种不同的食品。但奶牛们非常挑剔,iii号奶牛只吃食品PiP_iPi (1≤Pi≤M)(1 \leq P_i \leq M) (1≤Pi≤M)每天,奶牛们按...原创 2018-11-05 19:47:50 · 328 阅读 · 0 评论 -
引水入城(记忆化搜索+区间完全覆盖问题)
每个第一行的城市,在最后一列能影响到的一定是一段连续区间。如果不连续,假设是两段区间,那么两段区间中肯定不能被其他第一行的城市影响到,如果影响到,如下图如果蓝色和红色相交,那么蓝色一定可以更新到红色的。所以假设是两段区间,那么两段区间中肯定不能被其他第一行的城市影响到,而这种情况就是题目所谓不合法情况。那么我们就记忆化搜索,把第一行每个城市能影响到的最后一行的连续区间大小处理出来。...原创 2018-11-01 23:26:49 · 210 阅读 · 0 评论 -
noip 2015 子串(dp+滚动数组)
题目大意:给定两个字符串A,B(都是由a,b组成)(长度分别为n,m);你可以在字符串A中任截取k个字符串按截取顺序组成字符串B,问能截取的方案数动态规划;s[i][j][k]:字符串A正要处理第i项了,数组B匹配正要第j项,已经截取了k个字符串,总方案数;f[i][j][k]:字符串A正要处理第i项了,数组B匹配正要第j项了,已经截取了k个字符串,且第k个字符串必须包含A的第i项的...原创 2018-05-11 16:12:21 · 187 阅读 · 0 评论 -
停不下来的团长奥尔加(一道递推题,思维很好啊....)
停不下来的团长奥尔加【题目描述】奥尔加在一个长度为n+1的街道上跑着,初始,奥尔加在位置1上,他想要跑到 位置n+1去保护团员ride on。空旷的大路上难免会有暗杀者,当奥尔加走到位置i时,会有暗杀者出现,这时奥 尔加只能回到pi(1≤pi≤i)位置上,但在下次到达i的时候,暗杀者就不会出现(如果再到 达i还会有暗杀者),换言之,当奥尔加此时是第奇数次到达i的时候,下一步会走到pi, 第偶...原创 2018-10-27 22:41:45 · 3165 阅读 · 3 评论 -
P & Q(dp)
这道题,我乱写。。题都读错了,没看到q,p只能在两个不同的取。错误算法还对(100)了。正解:f[i][j]:表示第i个数,q有j个没有匹配,的p没有匹配数.二分总答案数。只要最后满足f[1+n][mid] >= mid 就好,处理完n个数,q有mid个没有匹配,p有大于等于mid个没有匹配.一定可以匹配出mid个。对于第i个数,如果它可以分成的p的数量和q 的数量之和...原创 2018-10-31 16:06:54 · 742 阅读 · 0 评论 -
mine(一道dp)题
这道题就是个dpdp[i][j]表示正要推这个位置,这个位置字符是j时,使字符串合法的方案数。0对应这个位置字符是0;1对应这个位置字符是1;2对应这个位置字符是2;3对应这个位置字符是*;这个位置字符是0,1,2,*时,是什么,j就更新什么,这个位置字符是?,要讨论当这个位置是以上所有情况时。再考虑怎么转移就行了。//我的第三维,只在当j = 1时用到dp...原创 2018-10-26 17:29:02 · 223 阅读 · 0 评论 -
matrix(又是dp....)
f[i][j] : 处理到第i列,填了j行右区间(这些右区间的左端点都在i列或i列左边)。you[i]:有多少个右区间的左端点都在i列或i列左边。zuo[i]:有多少个左区间的右端点都在i列或i列左边。如何转移?先只考虑填右区间的情况。f[i][j] = f[i-1][j] + f[i] + f[i-1][j-1] * (i - j + 1)。i-1列是已经填了j个。...原创 2018-10-29 20:38:30 · 178 阅读 · 0 评论 -
noip2016换教室(期望dp)
整体思路:这节课换了教室的期望路程 = min(上节课换了教室的期望路程 + 上节课教室到这节课教室的期望路程, 上节课没换教室的期望路程+ 上节课教室到这节课教室的期望路程)这节课没换教室的期望路程 = min(上节课换了教室的期望路程 + 上节课教室到这节课教室的期望路程,上节课没换教室的期望路程+ 上节课教室到这节课教室的期望路程) 上节课教室到这节课教室的期望路程 = 某一情...原创 2018-10-06 22:56:07 · 204 阅读 · 0 评论 -
bzoj 4985(二分+dp)
把评分从小到大排序,在所有的评分中,二分出一个答案x,去验证x 是否合法;dp[i] :i为最后一个数时,并且i>=x,前面需要添加的>=x的数个数;如果dp[最后一个数]所需要添的>=x的数个数<=不知道位置的数的,那么合法;dp[1-n]都是最初的状态;如果i位置上的数<x,无论加多少个都不可能使它本身>=x,所以赋值为inf如果i位置上...原创 2018-10-12 18:23:24 · 454 阅读 · 0 评论 -
一道轮廓线+刷表的题
刷表枚举要从0 到你要的状态-1啊!!!!;轮廓线高位,低位(位运算要熟练)题目:pure 在玩一个战略类游戏。现在有一个士兵方阵,每一行有若干士兵,每个士兵属于某个兵种。行的顺序不可改变,且每一行中士兵的顺序也不可改变。但由于每一行都有C 个位置(C 不小于任一行的士兵数),她能够安排每行的士兵依次站在某几个位置上。对于每一个士兵,令其前后左右相邻四个位置上有v 个和他种类相同...原创 2018-10-04 17:58:13 · 267 阅读 · 0 评论 -
bzoj 1596(树上dp)
弱化版将军令;//然而这里并不讲将军令的做法而是讲另一种dp做法。dp一下;dp[i][0] =表示i子树内所有草地全被覆盖,但是点i没有信号塔所需要的最小信号塔;dp[i][1] =表示i子树内所有草地全被覆盖,点i有信号塔所需要的最小信号塔;dp[i][2]=表示i子树内除了i所有草地全被覆盖,dp[i][1]可以由他的儿子v 的所有状态更新,初值为1,表示i位置有塔;...原创 2018-09-08 17:42:50 · 178 阅读 · 0 评论 -
背包问题及其简单优化总结
1.01背包for(int i = 1;i <= n; i++) for(int j = m; j >= w[i]; j--)//如果改成顺序f[i][j]就是由f[i][j-w[i]]推知,不符合题意 {f[j] = max(f[j] , f[j - w[i]]+v[i]);}时间复杂度O(mn), 空间o(m)//优化了。也可以二维,f[i][j...原创 2018-07-15 23:44:57 · 1102 阅读 · 0 评论 -
hdu 3401 单调队列优化dp
dp[i][j]表示第i天有j张彩票,因为隔w+1天才能买(卖),dp[i][j](1<i<=w+1,0<=j<=maxp)都要预处理出来,每一天的j=0也要预处理出来。因为预处理出来了那么i-w-1天的一定是相对i天来说的最优解;所以当买的时候dp[i][j]=max(dp[i-w-1][j-k]...原创 2018-05-24 23:00:44 · 166 阅读 · 0 评论 -
JZOJ5400 Repulsed(树上dp+贪心)
对于一个点,它被它的k级父亲覆盖肯定是最优的。f[i][j] :i这个点的子树中和它距离为j的待灭点数。g[i][j]:i这个点的子树中和它距离为j的灭火器能灭点数。f[i][k]:一定是在i这里灭是最优的,因为相距k.对于与i相距z的的灭火器(所在点)d2和与i相距w的待灭点d1,如果z + w = k或z + w = k-1(如果再往上走d1,d2就相距k+1就灭不到了)。...原创 2018-11-08 16:43:38 · 307 阅读 · 0 评论