随笔分类 - 树状数组/线段树
摘要:洛谷传送门 LOJ 传送门 考虑第一问,设一个区间的价值 \(g(l, r)\) 为 \(f(l, r) - a_r + a_{l - 1}\),其中 \(a_i = \sum\limits_{j = 1}^i c_j\),\(f(l, r)\) 为 \([l, r]\) 中最大的 \(k\) 个
阅读全文
摘要:洛谷传送门 LOJ 传送门 考虑若原来的序列是不降的,那么进行 \(1\) 操作或 \(2\) 操作序列仍然不降。那么 \(1\) 操作直接线段树上二分然后打覆盖标记,\(2\) 操作直接打标记即可。 考虑一般情况,发现某个时刻所有被 \(1\) 操作影响过的 \(i\)(存在一次 \(1\) 操作
阅读全文
摘要:洛谷传送门 CF 传送门 小清新题。 首先容易发现每个合法的 \(b\) 唯一对应一个排列,大概就是每个时刻排列元素的相对顺序,然后插入到相应的位置。 但是这样太麻烦了。发现题目只要求求单点的 \(p\) 值。这应该有更简单的方法。 考虑令 \(b_i \gets i - b_i\) 表示 \(p_
阅读全文
摘要:洛谷传送门 CF 传送门 和 CF1004F Sonya and Bitwise OR 很像。 考虑一次询问怎么做。考虑分治,每次只计算左端点在 \([l, mid]\),右端点在 \([mid + 1, r]\) 的区间的贡献。对于每个 \(i \in [l, mid]\),维护最小的 \(j \
阅读全文
摘要:洛谷传送门 CF 传送门 为什么我场上被卡常了。 转化题意,将 \(a, b\) 差分,答案为在 \(a, b\) 选出相同长度的不含 \(0\) 的子段方案数。 设 \(a\) 选出长度为 \(i\) 的不含 \(0\) 的子段方案数为 \(x_i\),\(b\) 选出长度为 \(i\) 的不含
阅读全文
摘要:洛谷传送门 若一个结点 \([l_i, r_i)\) 已知就连边 \((l_i, r_i)\),那么子集满足条件当且仅当每对 \((L_i, R_i)\) 都连通。 考虑在树形结构上 dp。发现若 \(l, r\) 不连通,设 \(l\) 所在连通块点编号最大值为 \(i\),那么 \(r\) 所在
阅读全文
摘要:洛谷传送门 CF 传送门 不知道为什么好像大家在这题上花了挺久的。 发现对于一对相邻的港口 \((x_i, x_{i + 1})\),\(x \in (x_i, x_{i + 1})\) 的花费是 \(y_i (x_{i + 1} - x)\)。拆开得 \(y_i x_{i + 1} - y_i x
阅读全文
摘要:洛谷传送门 CF 传送门 考虑扫描线,扫到 \(i\) 时,设包含 \(i\) 的区间的最小左端点为 \(l\)。设 \(x = a_i\)。 若 \([l, i]\) 之间存在 \(\ge 2\) 个 \(x\),那么就必须要修改。考虑序列此时的形式形如: \[[1, \ldots, a_l, \
阅读全文
摘要:洛谷传送门 CF 传送门 我独立做出一道 *3000? 考虑对于单次询问,除了 \(O(nm)\) 的 dp,有没有什么方法能快速算出答案。发现若 \(a_{i + 1} - a_i < b_{j + 1} - b_j\) 则 \(i \gets i + 1\),否则 \(j \gets j + 1
阅读全文
摘要:洛谷传送门 CF 传送门 看到 \(\max, \min\) 考虑单调栈。枚举右端点,计算有多少个符合条件的左端点。 单调栈维护的是对于每个右端点,以每个点为左端点的后缀 \(\max, \min\) 形成的极长的段。先枚举 \(\text{popcount} = k\),然后如果一个段的 \(\m
阅读全文
摘要:洛谷传送门 AtCoder 传送门 赛后调了 40min,哈哈。 首先先把 \(a, b\) 排序。 考虑先枚举 Alice 选的数 \(a_i\),然后若 \(\forall j, \exists k \ne i, (a_i, b_j, a_k)\) 能组成三角形,Alice 就赢了。 考虑简化条
阅读全文
摘要:洛谷传送门 LOJ 传送门 dp 好题。 首先有一个显然的状态,设 \(f_{i, x, y}\) 为第 \(i\) 列上下两格的颜色分别为 \(x, y\) 的方案数。但是这样做时间复杂度至少为 \(O(nm^2)\),无法接受。 注意到全 \(0\) 列的转移是重复的。我们可以试着只在两个相邻非
阅读全文
摘要:洛谷传送门 CF 传送门 考虑构造一个新串 \(t\),只保留原串 \(s_{i - 1} = s_i\) 的字符 \(s_i\)。设 \(a_i\) 为 \(t_i\) 在原串的位置。 那么新串上我们有两种操作: \(\forall i\),删除 \(t_i\)(相当于删除原串中的 \([a_i,
阅读全文
摘要:洛谷传送门 区间本质不同子串个数。 考虑类比区间数颜色。扫描线扫询问的 \(r = i\),然后对于一个 \(i\) 的后缀 \(S[j : i]\),我们把它上一次出现时的左端点位置 \(-1\),现在的左端点位置(即 \(j\))\(+1\)。那么查询就是 \([l, r]\) 的区间和。 考虑
阅读全文
摘要:洛谷传送门 CF 传送门 题目看着感觉很像最大流,不妨建模,\(S \to i\),容量为 \(a_i\);\(i \to T\),容量为 \(b_i\);\(i \to i + 1\),容量为 \(c_i\)。答案是这个图的最大流。 考虑最大流转最小割。观察到 \(S \to i\) 和 \(i
阅读全文
摘要:洛谷传送门 QOJ 传送门 考虑操作了若干次,所有点一定分布在一个自左上到右下的阶梯上或者在这个阶梯的右(上)侧。此处借用 H_W_Y 的一张图: 考虑如何计算答案。对于一次询问 \((X, Y)\),如果它在阶梯左下方不用管它,否则考虑容斥,答案即为 \(x \ge X, y \ge Y\) 的点
阅读全文
摘要:洛谷传送门 转化一下题意,变成求 \(x\) 在只经过编号 \(\in [l, r]\) 的点,能走到多少种颜色。 考虑建出点分树。一个结论是原树上的一个连通块,一定存在一个点,使得它在点分树上的子树完全包含这个连通块的所有点。证明考虑点分治的过程,一个连通块如果没被其中一个点剖开就一定在同一个子树
阅读全文
摘要:洛谷传送门 类比 P9062 [Ynoi2002] Adaptive Hsearch&Lsearch 处理区间最近点对的思路,尝试只保留可能有贡献的点对。 处理树上路径容易想到点分治。设点 \(u\) 到分治中心的距离为 \(a_u\)。我们有 \(\text{dis}(u, v) \le a_u
阅读全文
摘要:洛谷传送门 AtCoder 传送门 貌似是第三道问号题?感觉前面这个转化不是人能想到的。。。 考虑维护 \(y\) 的差分序列。更进一步地,我们类比 slope trick,维护一个可重集,里面有 \(y_{i + 1} - y_i\) 个 \(i\)(为了方便我们让每次操作时 \(y_{m + 1
阅读全文
摘要:洛谷传送门 CF 传送门 从套娃过来的。 首先考虑如何方便地描述所有子区间的 \(\text{mex}\)。这是一个经典套路,考虑扫描线,扫右端点 \(R\),维护一些极长的段 \([l, r]\) 表示 \([l, R], [l + 1, R], \ldots, [r, R]\) 的 \(\tex
阅读全文

浙公网安备 33010602011771号