随笔分类 - 数据结构
数据结构
摘要:[NOIP 2024 模拟12]序列 题意 给出长度为 的序列 ,每次操作给出 ,把 进行 次循环位移。 每次操作结束后查询整个序列是否存在三元上升子序列,即是否存在 。 思路 区间循环
阅读全文
摘要:Educational Codeforces Round 80 (CF1288) A. Deadline 题意 给出正整数 ,求不等式 是否有非负整数解。 思路 先不考虑上取整, \[x+ \frac{d}{
阅读全文
摘要:观景房 题意 给出若干个矩形,所有矩形组合形成的图形包含了若干条水平线。 你可以选出若干条水平线,必须满足高度先上升后下降,求选出的水平线长度和的最大值。 思路 先考虑如何求出所有水平线的高度和长度,观察下面的图片。 每个位置的水平高度就是覆盖这个位置的矩形高度最大值。 我们就需要一个数据结构支持以
阅读全文
摘要:移动 题意 有一个 的网格图,有 个点不能走。 每次移动可以向右或向下走,只能走两次。 求能走到的点的个数。 思路 可以发现只能是从第一排向下走或从第一列向右走。 统计上下走能到的点和左右走能到的点,减去重复的即可。 扫描 ,使用线段树维护 \(y\
阅读全文
摘要:[HNOI2009] 梦幻布丁 题意 给出一个序列 ,有 次操作,每次修改把序列中一种数全部改为另一种数。 每次询问,查询序列 的颜色段个数。 思路 颜色段只有同一种颜色才有贡献,我们考虑每种颜色开一棵平衡树维护。 每种颜色维护其在原序列中的下标,下标连续的一段区间
阅读全文
摘要:[COCI2015-2016#2] VUDU 题意 求一个序列中有多少个子段平均数大于 。 思路 区间和相关的问题可以考虑前缀和。 对于原序列前缀和序列 ,询问等价于求数对 的个数,满足: \[\frac{a_r - a_{l-1}}{r-l+
阅读全文
摘要:Atcoder Beginner Contest 372 A - delete . 模拟即可。 #include <bits/stdc++.h> using namespace std; using ll = long long; void solve() { char ch; while (cin
阅读全文
摘要:洛谷 P9912 Zatopljenje 题意 给出长度为 的序列 ,有 次询问。 每次给出 ,询问区间 中有多少段极长的, 都大于 的段。 思路 离线后扫描线。 先把询问和 离散化,然后扫描
阅读全文
摘要:洛谷 P5618 堵塞的交通 题意 有一个 的网格图,需要维护 种操作。 连接相邻的两个格子。 将相邻的两个格子断开连接。 询问两个格子是否联通。 思路1 考虑分块。 连边时块内使用并查集维护,块与块之间用数组标记。 删边块内的边时暴力重构并查集,块之间的边清
阅读全文
摘要:洛谷 P3224 永无乡 题意 给出 个点。有两种操作: 在点 和点 之间连一条边。 询问与 联通的点中点权第 小的点。 思路 使用并查集维护连通性。每个联通块用一棵平衡树维护点权,合并时启发式合并。 时间复杂度:\(O(n \log^2n
阅读全文
摘要:Atcoder Beginner Contest 369 C-Count Arithmetic Subarrays 题意 给出一个长度为 的序列 ,求有多少个 的连续子序列为等差数列。 思路 对于递增的右端点,左端点不减。 使用双指针,枚举右端点,扫描左端点。 时间
阅读全文
摘要:边权树链剖分 一般的树链剖分都是维护的点权,而如果要维护边权怎么办呢? 思路 我们可以把边权转换为点权。一个点有很多个儿子,但只有一个父亲。如果一个节点的点权记录到其儿子的边权就显然不行了,只能记录这个点到其父亲的边权。 如果要修改查询 的所有边权,通过维护点权的思路,先修
阅读全文
摘要:树链剖分学习笔记 简介 树链剖分是一种可以把树丢到线段树上维护的一种算法,时间复杂度为 。 思路 一、一些概念 1.重儿子:如果一个点有儿子,那么所有儿子中儿子最多的一个儿子就是这个点的重儿子。有点绕,可以看图理解。图中标红的点就是重儿子。 2.轻儿子:不是重儿子的点就
阅读全文
摘要:[SCOI2014]方伯伯的玉米田 题目描述 方伯伯在自己的农田边散步,他突然发现田里的一排玉米非常的不美。这排玉米一共有 株,它们的高度参差不齐。方伯伯认为单调不下降序列很美,所以他决定先把一些玉米拔高,再把破坏美感的玉米拔除掉,使得剩下的玉米的高度构成一个单调不下降序列。方伯伯可以选择一
阅读全文
摘要:树状数组学习笔记 简介 树状数组是一个可以在 的时间复杂度内支持单点修改和查询前缀和的操作的数据结构。 原理 观察发现线段树中有很多的冗余的部分。 红色部分为冗余部分。 把冗余部分去掉。 把每个节点编个号。 把每个节点的子节点个数和父结点编号列表出来。 | 1 | 2 | 3
阅读全文