随笔分类 - 题解
摘要:我永远喜欢数据结构。 显然 $l,r$ 的答案 $\in\{\sum\limits_{i=l}^ra_i-zp|z\in\mathbf{N}\}$,考虑求出 $z$。 线段树。每个节点上维护 $k_i$ 表示 $z=i$ 时,进入该节点时的当前答案最小值, 显然,若进入该节点时当前答案为 $g$,则
阅读全文
摘要:谁告诉你 Ynoi 就要手写数据结构了? 维护 map<int, list<int>> C[N],$C_{i,j}$ 表示与 $i$ 点所在连通块相邻的 $j$ 色连通块序列。 $a_x\gets y$ 时,直接对 $C_x$ 和 $C_i|i\in C_{x,y}$ 启发式合并,然后发现 $\fo
阅读全文
摘要:一眼点分治。 设当前分治中心为 $u$,正在考虑子树 $V$ 的贡献。 则 $\forall v\in V$,此次分治对询问 $v,k$ 的贡献为 $\sum\limits_{i\notin V}[d_i=k-d_v]$。 用桶维护。具体地,先把 $u$ 子树内所有点的深度装进桶里, 考虑 $V$
阅读全文
摘要:看来 P8511 的套路还不怎么推广。来点单 $\log$ 做法。 令 $a_i=f(E(1,i))$,则 $E(x,y)=a_x\oplus a_y$。 令 $s_i$ 为 $i$ 子树外 $a$ 的最大异或对,$t_i$ 为 $i$ 子树内 $a$ 的最大异或对。 转化一下问题,求 $\max\
阅读全文
摘要:什么时候搞个 P6072 加强版( 先找个全局最大异或对 $x,y$,然后只有 $x,y$ 的祖先的答案不是 $a_x\oplus a_y$,考虑求这一部分答案。 发现从上往下爬树的话,子树外点集是只加不减的,所以每个点最多被加进去一次。 从根分别爬到 $x,y$,01 Trie 维护这个子树外点集
阅读全文
摘要:HH 的项链の套路。 离线下来,对询问的 $r$ 扫描线,维护 $z_i=\max\{j|i\in[l_j,r_j],j\le r\}$,$d_x=\sum\limits_{z_i=x}v_{z_i}$。 若 $z_i\ge l$,则 $a_i=v_{z_i}$,否则 $a_i=0$,则询问 $l,
阅读全文
摘要:小清新树剖题。 显然不好直接做,离线下来对 $l$ 扫描线。 时刻保证 $\forall x_i\ge l,s_i=1$,然后每条边的 $s_i$ 只会变化一次。 发现维护的是一个颜色段信息,考虑树剖套线段树。 线段树每个节点上维护前缀 $1$ 的个数,后缀 $1$ 的个数,$1$ 的个数和答案。
阅读全文
摘要:钦定 $1$ 为树根,询问 $1$ 得到每个点的深度。 令 $A=\{x|\text{dep}_x\equiv1\pmod2\},B=\{x|\text{dep}_x\equiv0\pmod2\}$。 显然 $\min(|A|,|B|)\le\lfloor\dfrac n2\rfloor$。 询问
阅读全文
摘要:怎么全是线段树啊,来点 DSU。 维护 $f_i$ 表示 $i$ 后第一个 $\ge 10$ 的位置(需要操作的位置),初始 $f_i=i$。 区间修改 $[l,r]$ 时,初始 $i=\operatorname{find}(l)$,修改 $a_i$ 后,若 $a_i<10$,令 $f_i=i+1$
阅读全文
摘要:存在策略通过若干次操作取反任意偶数个数。 具体地,按如下策略取反 $a_x,a_y$: 进行 $y-x$ 次操作,第 $i$ 次操作取反 $a_{x+i-1},a_{x+i}$。 将所有负数两两取反。 若无剩余,此时 $\sum a_i$ 即为答案。 若剩余 $a_k$,此时的 $\sum a_i$
阅读全文
摘要:来点低复杂度无 Trie 做法。 若 $p\cdot q$ 的美丽度为 $k$,则 $\forall i\le k,q_{p_i}=i$。 这个比较难维护,令 $p'$ 为 $p$ 的“逆排列”且 $p'_{p_i}=i$。 若 $p\cdot q$ 的美丽度为 $k$,则 $\forall i\l
阅读全文
摘要:字符串?哈希! 容易发现 $|s_i|$ 的长度有 $O(\sqrt{\sum|s_i|})$ 种。 匹配模板串 $S$ 时,考虑其所有长度为 $k|\exists s_i,|s_i|=k$ 的子串(而非所有子串) $T$($O(\sum|s_i|\sqrt{\sum|s_i|})$ 种),累计 $
阅读全文
摘要:字符串?哈希! 考虑暴力,对每次询问 $a,b$ 找到其在 $S$ 中的所有出现, 对 $a$ 的所有出现,找到与其最近的 $b$ 的出现, 不难发现若 $a$ 的枚举是单调的,则 $b$ 的枚举也是单调的。 对 $a,b$ 的出现次数根号分治,注意到 $1\le|a|,|b|\le4$,则出现次数
阅读全文
摘要:对于一个矩形,已知其四边上不考虑其内部道路的所有答案,考虑其中车流指数最大的道路。 如图,红线为矩形中车流指数最大的道路, 两端点 $(k,s),(k,t)$ 不考虑矩形中内部道路的答案分别为 $x,y$, 则 $\forall i\in[s,t]$,可以确定 $(k,i)$ 的答案为 $\max\
阅读全文
摘要:写一个比大部分做法跑得快的哈希(最优解 rk3)。 枚举 $S_0$ 子串的开头,二分找失配位置,在失配位置后二分找下一个失配位置,以此类推。 如果第 $4$ 个失配位置在子串外,那么这个子串符合要求。 考虑字符集大小只有 $4$,$\text{base}$ 取 $5$ 即可。 直接自然溢出啥事没有
阅读全文
摘要:最长相同前后缀,考虑 KMP。 对于当前答案串 $q$,要合并的单词 $s$,求出 $s+q$ 的 border 即为最长相同前后缀。 注意到 $q$ 的长度可能相当长,而 border 长度不超过 $|s|$,所以只需要截取 $q$ 长度为 $\min(|q|,|s|)$ 的后缀即可。 注意到所求
阅读全文
摘要:结论:存在策略使得 $a$ 只剩下一个元素 $\Leftrightarrow a_1<a_n$。 充分性证明:观察到操作过程中 $a$ 最左端的数不降,$a$ 最右端的数不增。 证明:对最左端的数操作时,有 $a_1<a_2$,删除 $a_2$ 后最左端的数不变,删除 $a_1$ 后最左端的数变大。
阅读全文
摘要:析合树是一种连续段数据结构。 引入: 给定排列 $\{P_n\}$,求值域连续的段的个数。 概念 排列 是排列。 连续段 是值域连续的段,满足集合运算。 值域区间 是连续段值域的区间。 本原段 是不与其他连续段部分相交的连续段。 连续段集 $I_p$,本原段集 $M_p$。 形式化的, 定义序列 $
阅读全文
摘要:Meet in the middle。 设选出的两个集合为 $A,B$,$Q=\{A\cup B|\sum\limits_{a\in A}a=\sum\limits_{b\in B}b\}$,容易发现 $|Q|$ 即为所求。 考虑把原序列分成 $X,Y$ 两半。 $$ \begin{aligned}
阅读全文
摘要:题意:给定一张无向图和点 $s,t$,求有多少个点 $x$ 使得删去点 $x$ 后 $s,t$ 不连通。 思路 观察到 $n,m$ 很小,考虑暴力做法。 枚举每个点作为 $x$,$O(n+m)$ 跑一遍 BFS 验证不经过 $x$ 时 $s,t$ 是否连通。 BFS 时避免扩展点 $x$ 即可保证
阅读全文

浙公网安备 33010602011771号