YBTOJ专题
文章平均质量分 95
龑钧
Pursue Victories
展开
-
YBTOJ 「动态规划」第6章 单调队列全解
设dpi为第i个位置必须删掉,能得到的最小减少量,那么答案就是dp[n+1]每一个子串用KMP跑一遍,记录一下每一个位置之前的最近的违禁单词起始位置。和的最小值,运用两次单调队列找到区间内的上一个位置的最小值即可。那么用单调队列维护维护的范围也有了,那么就直接开干就行了!还是二分,单调队列维护的是区间最小值,最后判断的时候要从。很明显的单调队列维护:维护符合范围的dp最大值,直接用。时,只有k时在一直变化的,所以,我们可以单调队列维护。在不断变化,于是可以想到找区间内的最小的。首先时很明显的二分,设。原创 2022-09-15 15:45:18 · 359 阅读 · 0 评论 -
YBTOJ 树形dp
Link我们用0/10/10/1表示一个点的选与不选那么f[i][1]=f[i][1]+f[to][0]f[i][1]=f[i][1]+f[to][0]f[i][1]=f[i][1]+f[to][0], f[i][0]=f[i][0]+max(f[to][1],f[to][0])f[i][0]=f[i][0]+max(f[to][1],f[to][0])f[i][0]=f[i][0]+max(f[to][1],f[to][0])动态方程就出来了这一板块昨晚,就就发现一个树形dp的共同点:通过dfs对原创 2022-08-29 21:07:48 · 169 阅读 · 0 评论 -
YBTOJ LCA全集
思路:首先应该生成最小生成树,生成时标记一下,再去遍历未被标记的边,这些边的共性就是出现时间晚,并且长度较大,当我们决定使用这条边时这两个点一定会形成一个环,依据贪心原理,我们因该替换掉两点路径中第一个小于加入边的边,不是最大边!思路比较好想:因为会有重边,而且求的是最大可载重量,于是可以先跑一棵最大生成树,剩下的就是来维护两点之间的最小值,而最小值与上面的就全长有异曲同工之处,找到两点到lca的最小值。的边,显然这些边都要被修改,也就是找到一条边,这一条边所有的大于。,使俩端点的差分数组++,而。原创 2022-08-25 10:52:50 · 180 阅读 · 0 评论 -
YBTOJ 线段树全家桶
这两天可算是把线段树的题刷完了,感觉线段树更熟练了(😓板子题,甚至不涉及到pushdown,直接修改即可CodeB. 【例题2】区间查改板子plus 对于这里不用一个一个的去修改,,如果一个区间在修改范围内,不妨将直接将其区间总和加上 v×(r−l+1)v\times (r-l+1)v×(r−l+1) 同时记录一个懒标记,如果之后修改的区间在其之内就将其下放,大大节约修改时间CodeC. 【例题3】公园遛狗思路 计算区间最大连续子串和,我们对于一颗树需要维护有三个变量:区间最大子串和、原创 2022-08-23 20:28:46 · 208 阅读 · 0 评论