随笔分类 - 数据结构 / 线段树,树状数组
摘要:题意 给定一个长度为 \(n\) 的序列,有 \(q\) 次操作:区间将 \(>x\) 的数减掉 \(x\),区间查询和以及两个最值。 强制在线,\(n,q\le 5\times10^5,6\text{s},64\text{MB}\) 分析 倍增值域分块。 忘了哪篇文章说的了,倍增值域分块适用于数值
阅读全文
摘要:source:zr 二十联测 day19 C 题意 定义序列 \(\{a_i\}\) 的权值为序列中元素之和的绝对值。 定义一个序列的划分 \(p_1,p_2,\cdots,p_k=n\) 为将序列 \(\{a_i\}\) 划分成了 \([1,p_1],[p_1+1,p_2],\cdots,[p_k
阅读全文
摘要:题意 给定排列 \(a,b\),\(q\) 次询问 \(l,r\),你需要求出 \(\sum_{l\le l'\le r'\le r}(\max_{i=l'}^{r'}a_i)(\max_{i=l'}^{r'}b_i)\) 对 \(2^{64}\) 取模的值。 \(n,q\le 2.5\times1
阅读全文
摘要:题意 有 \(n\) 个数 \(a_i\),\(q\) 次操作,每次操作会单点修改 \(a_i\),查询所有 \(\ge b\) 的所有数形成的连通块个数。 \(n,q\le 2\times10^5,1\le a_i\le 10^9\) 分析 存在一个 \(O(n\sqrt n)\) 的分块做法,但
阅读全文
摘要:介绍一种好想、在线、空间小、跑的还挺快的做法(?) 先暂时不考虑修改,只考虑怎么快速求解询问。 询问相当于区间内前缀按位或的和。根据按位或的性质,当区间内某个值在某一位下是 \(1\),那么所有包含这个值的前缀的按位或结果在该位下都为 \(1\)。 考虑拆位,单独考虑每一位对答案的贡献,设 \(w\
阅读全文
摘要:题意 给定一棵带权树和 \(q\) 次询问,每次询问修改一条树边的权值,并查询修改后树的直径。询问之间不独立。 \(n,q\le 10^5\),强制在线。 分析 回想一下,两个点的距离可以被表示成 \(dep_x+dep_y-2dep_{lca(x,y)}\)。 而树的直径,本质上就是求 \(\ma
阅读全文
摘要:赛时想出来但是没写出来。 题意简述 定义一个合法序列 \(a_1,a_2,\cdots a_m\) 满足以下条件: 对于 \(1\le i<m\),\(a_{i+1}\) 被 \(a_i\) 整除。 初始给定排列 \(a\),\(q\) 次询问,每次询问给出 \(l,r\),求出 \(a_{[l,r
阅读全文
摘要:题意简述 你初始在 \((0,0)\),每个时刻你能向八连通格子移动或不移动。 有 \(n\) 个怪物,怪物坐标已知,每个时刻怪物也能向八连通格子移动或不移动,而且会选择最终与你欧几里得距离最短的一种方案。 求你在什么时刻会被怪物抓住(你和怪物在同一格子内),或报告无解。 \(n\le 10^5,|
阅读全文
摘要:https://www.luogu.com.cn/problem/CF264E 求最长上升子序列长度的经典方法是 dp,此题中设 \(f_i\) 为以 \(i\) 为结尾的答案不是很方便,所以此题中改写 \(f_i\) 为以 \(i\) 为开头的答案,转移就是 \(f_i=\max_{j\ge i+
阅读全文
摘要:https://www.luogu.com.cn/problem/CF351D 由于每次操作后存在重排操作,我们可以让序列(询问的区间)中的相同值放在一块,这样以后每次操作就能删掉一整个值相同的位置了。那么第二次操作后所需操作数就是当前序列中不同数的个数。经典数颜色问题,离线线段树/莫队/主席树都能
阅读全文
摘要:题意简述 有一个大小为 \(n\) 的有根树,根为 \(1\)。每个节点上有一个敌人,强度为 \(w_i\)。 你要从 \(s\) 出发打怪,设你当前所处点为 \(u\),你可以花费 1 单位时间经过一条边到达 \(u\) 的某个儿子,然后打怪。若你的死亡次数小于 \(w_i\),则会死亡并回到起点
阅读全文

浙公网安备 33010602011771号