dp[i] = max_{j ∈ [i-R,i-L]}( dp[j] + v(j+1,i) )。做前缀和后,对每种s[j]的值,开一个单调队列。每次将i-L入队、将i-R-1出队。用线段树维护每个队列的队首。转移时最区间最大值查询。 ...
分类:
其他好文 时间:
2020-08-17 16:57:59
阅读次数:
68
线段树优化建图板子题。。。。。。 暴力建边 \(\mathcal O(n^2)\) 肯定会 TLE 但仔细分析可以发现,题面中有一个我们非常熟悉的字眼“区间”,这启示我们,可不可以以此作为解题的突破口呢? 答案是肯定的。想到区间我们可以联想到各种我们很熟悉的 trick,如前缀和、差分、线段树等。 ...
分类:
其他好文 时间:
2020-08-11 10:42:25
阅读次数:
71
$\mathcal Link. 给一个 \(n\times n\) 的棋盘,其中 \(q\) 个互不重叠的子矩阵被禁止放棋。问最多能放多少个互不能攻击的车。 \(n,q\le10^4\)。 $\mathcal 如果把问题转化成“只允许在某些子矩阵上放棋”,就是一个很显然的线段树优化建图最大流。源点连 ...
分类:
其他好文 时间:
2020-08-07 21:44:28
阅读次数:
73
如果您看到这里什么内容都没有,不必感到疑惑。 因为它就是什么都没有。 理论篇 一.决策单调性优化:单调栈/单调队列/斜率/四边形不等式优化 咕了。 二.数据结构优化:前缀和/线段树/树状数组优化 咕了。 三.其他优化:滚动数组/矩阵乘法/各式各样的推式子优化 咕了。 ...
分类:
其他好文 时间:
2020-08-06 22:02:51
阅读次数:
91
https://codeforces.ml/contest/1389/problem/F 法一:dp,所有区间按右端点排序,依次考虑“如果最后一个区间为该区间”的最优情况,它(叫做A)可以从一个“右端点比A的左端点小”的异类区间B转移过来,但是同时可以顺便把“B的右端点以右”的同类区间算上。算上同类 ...
分类:
其他好文 时间:
2020-08-04 09:49:31
阅读次数:
70
线段树专题 https://blog.csdn.net/qq_25605637/article/details/46967529 D-逆序对 D - Minimum Inversion Number 思路 找到第i个数前面有多少比它大的,用vis[x+1]……vis[n-1]求和,从前往后读,出现过 ...
分类:
其他好文 时间:
2020-08-03 23:31:34
阅读次数:
87
一般线段树与权值线段树 1.算法分析 一般还要开4N的数组 一般做单点修改、区间查询,加上懒标记后,可以做区间修改、区间查询 1.1 一般线段树 可以处理:区间加、区间乘、区间max/min、区间覆盖等问题 1.2 权值线段树 维护全局的值域信息,每个节点记录的是该值域的值出现的总次数。 使用二分的 ...
分类:
其他好文 时间:
2020-08-03 23:09:16
阅读次数:
69
区间DP是线性DP的一种,它以“区间长度”作为DP的“阶段”,使两个坐标(区间的左右端点)描述每个维度。 区间DP中,一个状态由若干个比它更小且包含于它的区间所代表的状态转移而来。区间DP的初态一般就由长度为1的“元区间”组成。这种向下划分,再向上递推的模式与某些树形结构如线段树有很大的相似之处。 ...
分类:
其他好文 时间:
2020-08-01 21:36:53
阅读次数:
101
今天气闷,过来写一篇小结。 内容上主要包括noip提高组常考的线段树与树状数组,还有一些拓展的算法qwq窝太蒻了。 一. 线段树 Q1:什么是线段树? A1:线段树就是线段的树 维护区间信息(大多数是可以合并的)的树就是线段树qwq 所以线段树的每一个节点就必须要代表一个区间的信息啦。线段树的实现方 ...
分类:
编程语言 时间:
2020-07-31 19:17:29
阅读次数:
72
可持久化线段树(主席树) 单点修改 ? 1.单点修改时,我们考虑将包含该点$k$的线段树节点新建出一条链。(就像这样) 每次修改将创造出$logn$个新节点。 ? ? 2.修改完的线段树不再是一颗完全二叉树,我们不能直接用层次编号,而是直接改为记录左右子节点的编号。大概的意思就是:不能用$o << ...
分类:
其他好文 时间:
2020-07-30 21:49:21
阅读次数:
69