数据结构
数据结构是在计算机中存储、组织数据的方式。小到变量、数组,大到线段树、平衡树,都是数据结构。
程序运行离不开数据结构,不同的数据结构又各有优劣,能够处理的问题各不相同,而根据具体问题选取合适的数据结构,可以大大提升程序的效率。所以,学习各种各样的数据结构是很有必要的。
liamaking
这个作者很懒,什么都没留下…
展开
-
求最小交换次数
排序的最小交换次数原创 2022-11-19 15:27:39 · 398 阅读 · 0 评论 -
ST表模板
#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 100;int f[N][100];int mn[N];int n, m;int rmq(int l, int r){ int k = mn[r - l + 1]; return max(f[l][k], f[r - (1 << k) + 1][k]);}int main(){ scanf("%d%d", &原创 2022-01-15 21:02:40 · 245 阅读 · 0 评论 -
洛谷 P3369 【模板】普通平衡树--平板电视stl大法
题目描述您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:插入 xx 数删除 xx 数(若有多个相同的数,因只删除一个)查询 xx 数的排名(排名定义为比当前数小的数的个数 +1+1 )查询排名为 xx 的数求 xx 的前驱(前驱定义为小于 xx,且最大的数)求 xx 的后继(后继定义为大于 xx,且最小的数)输入格式第一行为 nn,表示操作的个数,下面 nn 行每行有两个数 \text{opt}opt 和 xx,\text{opt}opt 表示操作的序号( 1原创 2021-12-14 18:20:06 · 841 阅读 · 1 评论 -
可持久化线段树--主席树
洛谷P3834题目背景这是个非常经典的可持久化权值线段树入门题——静态区间第 kk 小。数据已经过加强,请使用可持久化权值线段树。同时请注意常数优化。题目描述如题,给定 nn 个整数构成的序列 aa,将对于指定的闭区间 [l, r][l,r] 查询其区间内的第 kk 小值。输入格式第一行包含两个整数,分别表示序列的长度 nn 和查询的个数 mm。第二行包含 nn 个整数,第 ii 个整数表示序列的第 ii 个元素 a_iai。接下来 mm 行每行包含三个整数 l, r, kl,r,原创 2021-11-17 11:25:08 · 346 阅读 · 0 评论