随笔分类 -  DP_线性DP

摘要:颓废快乐\雾 阅读全文
posted @ 2020-01-19 10:10 LuitaryiJack 阅读(193) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-10-17 23:33 LuitaryiJack 阅读(8) 评论(0) 推荐(0)
摘要:想不到 2QwQ 思路:转化+DP 提交:1次 题解: 这个真想不到去DP。 我们设 $f[i]$ 表示 让第 $i$ 个牛是斑点牛,那么我们需要考虑如何转移是合法的。 $l[i]$ 表示 在 $i$ 左侧 所有不包含 $i$ 的区间中 最靠右的左端点,$r[i]$ 表示 所有包含 $i$ 的区间中 阅读全文
posted @ 2019-09-26 13:12 LuitaryiJack 阅读(167) 评论(0) 推荐(0)
摘要:想不到啊QwQ 思路:转化+DP 提交:1次 题解: 首先若比他分数高的+分数低的 n 1显然是假的;把相同分的人看作一个区间:左端点为 分数更低的人数,右端点为 n 分数更高的人数。同时我们统计有多少个相同的区间(多少个人说过的这句话),作为这个区间的权值。然后现在我们就是要最大化不交区间的权值( 阅读全文
posted @ 2019-09-26 13:11 LuitaryiJack 阅读(128) 评论(0) 推荐(0)
摘要:垫底了。。。 阅读全文
posted @ 2019-09-22 16:21 LuitaryiJack 阅读(184) 评论(0) 推荐(0)
摘要:思路:DP 提交:1次 题解: 我们把处理到的要求作为阶段。 $f[i][x][y][z]$表示第 $i$ 个要求,三个人分别的位置。 发现这样有很多无用状态,因为显然在第 $i$ 个要求后,总有一个人在 $pos[i]$ 所以我们省掉一维。 注意第一维要滚动。 代码: cpp include de 阅读全文
posted @ 2019-09-18 21:59 LuitaryiJack 阅读(175) 评论(0) 推荐(0)
摘要:思路:DP 提交:1次 题解: 最开始我们可以想到,分两种序列都做一遍。 先来证明一个结论: 存在一种构造,使 $B$ 中的数都在 $A$ 中出现过,且这样不劣。 (目的是为了转化暂时看起来虚无缥缈的DP) 显然一个数成立,考虑 $B$ 的前 $k 1$ 项,向后插入一个数 $B_k$。 若 $B_ 阅读全文
posted @ 2019-09-18 21:46 LuitaryiJack 阅读(154) 评论(0) 推荐(0)
摘要:思路:$DP$ 提交:$2$次 错因:高精写挂(窝太菜了) 题解: 观察可知$f[i]=2 f[i 1]+(n\&1)$ 高精的过程参考了 "WinXP@luogu" 的思路: 发现一个问题。每一项约等于前一项的 $2$ 倍。仔细分析,发现 $dp(n)=2dp(n 1)+ (n\& 1)?1:0$ 阅读全文
posted @ 2019-08-23 18:30 LuitaryiJack 阅读(154) 评论(0) 推荐(1)
摘要:这个字典序海星 思路:$DP$ 提交:4次 错因:刚开始把字典序理解错了,怒看题解一脸懵逼;后来往前跳的时候又没有管上升$QwQ$窝太菜了。 题解: 所谓的字典序是相对位置!!!而不是元素本身的大小!!! 先求出每个点往后的的最长上升子序列。 然后对于每个询问,若询问的长度$len =$最长的上升子 阅读全文
posted @ 2019-07-22 22:53 LuitaryiJack 阅读(171) 评论(0) 推荐(0)
摘要:这名字可海星$OvO$ 思路:$DP$ 提交:2次($zz$我竟然把三目运算符写错了$QwQ$) 题解: 按位进行$DP$:$f[i]$表示结尾的数字包括$1 include define ull unsigned long long define ll long long define R reg 阅读全文
posted @ 2019-07-22 22:08 LuitaryiJack 阅读(138) 评论(0) 推荐(0)
摘要:思路:最短路+DP 提交:1次 题解: $f[i]$表示到第$i$天的最小代价,我们可以预先处理出$i,j$两天之间(包括$i,j$)都可通行的最短路的代价记做$s[i][j]$,然后有$f[i]=min(f[i],f[j]+s[j+1][i]*(i-j)+W);$ 2019.07.21 阅读全文
posted @ 2019-07-21 20:57 LuitaryiJack 阅读(243) 评论(0) 推荐(1)
摘要:想状态和钉子的位置如何匹配想了半天。。。后来发现不是一样的吗$qwq$ 思路:当然是$DP$啦 提交:>5次(以为无故$RE$,实则是先乘后除爆了$long\space long$) 题解: 若有钉子,左右各乘$\frac{1}{2}$转移,否则,向下两层直接转移。 对于分数,分别维护分子和分母,然 阅读全文
posted @ 2019-07-17 23:44 LuitaryiJack 阅读(159) 评论(0) 推荐(0)
摘要:状压个啥$qwq$ 思路:大力$DP$ 提交:2次(自信的开了$int$) 题解:(见注释) 2019.07.17 阅读全文
posted @ 2019-07-17 23:31 LuitaryiJack 阅读(265) 评论(0) 推荐(0)
摘要:首先$LIS$显然:$f[i][j]=max(f[i][j-1],f[i-1][j],(a[i]==b[j])*f[i-1][j-1])$ 考虑如何转移数量: 首先,不管$a[i]$是否等于$b[j]$, 都有$h[i][j]+=h[i-1][j]*(f[i][j]==f[i-1][j])+h[i] 阅读全文
posted @ 2019-07-11 16:15 LuitaryiJack 阅读(116) 评论(0) 推荐(0)
摘要:我死了。。。被绿题虐。。。看来我的水平有待提高。。。QWQ 好吧,就是跑步的时候只能从跑步的状态转移过来 休息的时候可以从上一次休息时转移过来,也可以从某次跑步的时转移过来,需要枚举从哪一个状态转移来的 就是这样,可是我不会。 2019.04.28在明天考试前突然意识到自己是个渣渣+zz+菜的不行的 阅读全文
posted @ 2019-04-28 19:07 LuitaryiJack 阅读(122) 评论(0) 推荐(0)
摘要:f[i][j]表示在第i个垃圾,高度为j的最大生命值 转移分三部分: 如果j>=当前垃圾的高度,且两个垃圾间的时间小于等于上一个状态f[i-1][j-a[i].v]的生命值,则可以垫高度 如果j>=当前垃圾的高度,且两个垃圾间的时间小于等于上一个状态f[i-1][j]的生命值,则可以吃 如果j<当前 阅读全文
posted @ 2019-04-28 12:39 LuitaryiJack 阅读(110) 评论(0) 推荐(0)
摘要:第一问求最长下降子序列,不提; 第二问:借鉴了最短路的方法??? 我们求出来了每个位置的最长下降子序列的长度,那么刻意这样这样转移 if f[i]==f[j]+1&&a[i]<a[j](i>j) 这代表f[i]可以由f[j]转移过来,所以 f[i]+=f[j] 但是会重复,所以当f[i]==f[j] 阅读全文
posted @ 2019-04-28 11:58 LuitaryiJack 阅读(121) 评论(0) 推荐(0)
摘要:复习复习DP。。。都忘了QAQ... 好了这道题我其实是看题解才会的。。。 方程 f[i]=min(f[i-j]+v[i]) v[i]表示i是不是石头 s<=j<=t 路径压缩引用一下证明From Luogu@Panda_Hu 2019.04.28 慌得一批QAQ 阅读全文
posted @ 2019-04-28 11:49 LuitaryiJack 阅读(212) 评论(0) 推荐(0)
摘要:把二维压成一维的DP了解一下。。。 传送门 (以纪念神经兮兮调了两天的一维DP(刷水题谋财害命)以及感谢学长的帮助@ydnhaha) 显然我们有二维的dp:f[i][j]代表第i盆花放到第j个位置 由于只访问上一个状态,我们可以理所应当的把它压掉 注意,需要倒序循环(好吧我的二维的也是倒序的QWQ) 阅读全文
posted @ 2019-03-03 15:30 LuitaryiJack 阅读(390) 评论(1) 推荐(0)
摘要:传送门 其实我觉得这个跟P1004挺类似(又是动规) 题解P1004 阅读全文
posted @ 2019-03-01 19:50 LuitaryiJack 阅读(261) 评论(0) 推荐(0)