随笔分类 - 数据结构
数据结构事好文明!
摘要:题目大意 题目链接。 给定结点个数为 \(n\) 的有边权树,需要维护 \(m\) 次操作,分为如下 \(5\) 种: 修改某条边的边权。 对某条路径上的边的边权取为相反数。 查询路径上的边权和。 查询路径上边权的最大值。 查询路径上边权的最小值。 限制: \(1\le n, m\le 2\time
阅读全文
摘要:NOI 2020 D1T2 Destiny Task 给定 \(n\) 个点的以 \(1\) 为根的有根树,有 \(m\) 条约束,每条约束包含一个点对 \((u,v)\),满足 \(u\) 是 \(v\) 的祖先,你需要给每条边染成黑白两种颜色,满足对于每条约束,\(u\rightarrow v\
阅读全文
摘要:Description 给定含有 \(n\) 个点的森林,\(m\) 次询问,每次询问包含两个参数 \(v,p\),求有多少个节点与节点 \(v\) 含有相同的 \(p\) 级祖先。 \(1\le n\le 10^5\) Solution 看到线段树合并的题解那么少,就来补一篇吧。 前置知识 线段树
阅读全文
摘要:Description: 有 \(N\) 个洞,每个洞有相应的弹力,能把这个球弹到 \(i+power[i]\) 位置。当球的位置 \(>N\) 时即视为被弹出。 有两种操作: 修改某个点的弹力值。 询一个球从某点几次能够弹出,弹出前的最后一个位置是哪里。 Solution 考虑分块,对于每个点,记
阅读全文
摘要:Description 给定长度为 \(n\) 的序列 \(a\),\(m\) 次询问,求: \(\max_{i\in[l,r]}cnt[a_i]\times a_i\) 即带权众数。 \(1\le n,m\leq 10^5,1\le a_i \le 10^9\) Solution 前置芝士:莫队(
阅读全文
摘要:简介 莫队算法是由前国家队队长莫涛总结的一种可以解决一类离线区间询问问题,适用性极为广泛的算法。 这篇文章会讲解目前 OI 竞赛中比较常见的莫队算法类型。 大体思路 从一道例题讲起: Luogu P3901 数列找不同 给定长度为 \(n\) 的序列 \(a\),\(m\) 次询问 \(l,r\),
阅读全文
摘要:##Description 给定长度为 \(n\) 的序列 \(a\),每个点有一种颜色 \(c\)。 \(m\) 次询问区间 \([l,r]\),求有多少个颜色出现次数为偶数次。 限制:\(1\le n,m,c\le10^5\)。 ##Solution 考虑 分块 用类似于求区间众数的思路: 用
阅读全文
摘要:Description 有 \(n\) 张牌,一开始从 \(1\sim n\) 排列,有 \(n\) 次操作,每次把 \(R\) 张牌移到最尾,求每次发牌过后队首的牌,并且删掉这张牌 Solution 考虑用 fhq-treap 求解,因为 fhq-treap 有着强大的处理区间的能力,所以我们直接
阅读全文
摘要:[$\text 维护序列,支持区间异或,区间查与一个数的最大异或 [$\text 我们要求最大异或,首先考虑的就是线性基,但是线性基并不支持区间修改。 所以我们要找一个能支持该操作的数据结构(比如线段树),所以我们可以考虑用线段树套一个线性基。看到这里,你已经能切掉 P4839 P哥的桶 了。但是这
阅读全文
摘要:Description 维护一个序列,支持单点修改,区间查询最大异或和。 Solution 看到区间查询最大异或和,考虑线性基。 但是线性基并不资瓷区间查询怎么办嘞? 我们可以借助树套树的思想,给一个资瓷单点修改,区间查询的数据结构(比如线段树)里的每一个节点套一个线性基。 这样子就可以解决这个问题
阅读全文
摘要:[$\text 给定一颗有 \(n\) 个点的树,另给出 \(m\) 条有边权的边。求断掉一条边后能使原树联通的最小边权。 [$\text 非常有意思的一道树剖题目,我们可以画图理解一下: 接着我们思考断掉一条边,寻找最小的能使图联通的边(这里建议手模一下),我们会发现: 只有当被断掉的边连接的两个
阅读全文
摘要:Description 有 \(n\) 个数,\(m\) 次操作。 0 l r k 查询区间 \([l,r]\) 大于等于 \(k\) 的元素个数。 1 p k 将 \(a_p\) 修改为 \(k\)。 限制: \(1\le n,m\le5\times 10^5\) Solution 考虑分块,设块
阅读全文

浙公网安备 33010602011771号