随笔分类 - 数据结构
摘要:source:zr 二十联测 day19 C 题意 定义序列 的权值为序列中元素之和的绝对值。 定义一个序列的划分 为将序列 划分成了 \([1,p_1],[p_1+1,p_2],\cdots,[p_k
阅读全文
摘要:source:zr2024 二十联测 http://zhengruioi.com/contest/1717/problem/3061 题意 给定一棵以 为根的树,树边有两种形态:实边和虚边。初始这棵树的所有边都为虚边。 定义 assert(x) 操作为:对于根到 上所有点,将
阅读全文
摘要:这个做法来看,对数做法到线性做法的跨度还比较大(?) 将打擂的过程看成一颗线段树。 定义“不定人”为一个 不确定的的人,“固定人”反之。 性质 1:一个子树内的可能胜者要么唯一且是固定人,要么存在一个不定人。 若可能胜者有两个且无不定人,那么这两个人在合并的过程中必然会进行一次打擂。
阅读全文
摘要:这可能也是一个关于匹配的经典 trick。 题意 给定常数 ,你需要维护一个集合 ,支持以下操作: 1 x,加入数 ,保证 之前不存在。 2 x,删除数 ,保证 之前存在。 每次操作后你需要回答 $$\max_{i,j\in S,i\n
阅读全文
摘要:介绍一种好想、在线、空间小、跑的还挺快的做法(?) 先暂时不考虑修改,只考虑怎么快速求解询问。 询问相当于区间内前缀按位或的和。根据按位或的性质,当区间内某个值在某一位下是 ,那么所有包含这个值的前缀的按位或结果在该位下都为 。 考虑拆位,单独考虑每一位对答案的贡献,设 \(w\
阅读全文
摘要:感觉是一个比较厉害的 trick,并且从来没见过,记录一下。 题意 给定 个数和 次操作: 1 l r x:区间 加 。 2 x v:查询在询问之前有多少时刻 。一次操作定义为一个时刻,初始为 时刻。 \(n,
阅读全文
摘要:题意简述 你初始在 ,每个时刻你能向八连通格子移动或不移动。 有 个怪物,怪物坐标已知,每个时刻怪物也能向八连通格子移动或不移动,而且会选择最终与你欧几里得距离最短的一种方案。 求你在什么时刻会被怪物抓住(你和怪物在同一格子内),或报告无解。 \(n\le 10^5,|
阅读全文
摘要:https://www.luogu.com.cn/problem/CF264E 求最长上升子序列长度的经典方法是 dp,此题中设 为以 为结尾的答案不是很方便,所以此题中改写 为以 为开头的答案,转移就是 \(f_i=\max_{j\ge i+
阅读全文
摘要:https://www.luogu.com.cn/problem/CF351D 由于每次操作后存在重排操作,我们可以让序列(询问的区间)中的相同值放在一块,这样以后每次操作就能删掉一整个值相同的位置了。那么第二次操作后所需操作数就是当前序列中不同数的个数。经典数颜色问题,离线线段树/莫队/主席树都能
阅读全文