数据结构
文章平均质量分 82
少儿编程乔老师
信息学奥林匹克山东省赛区优秀辅导教师,蓝桥杯TOP 1%考生指导教师
展开
-
单调队列:修剪草坪
单调队列:修剪草坪原创 2021-01-04 12:38:04 · 995 阅读 · 0 评论 -
数据结构——哈希表
哈希表哈希,又称散列,是把任意长度的输入通过哈希算法变换成固定长度的输出,该输出就是散列值。哈希表是通过哈希函数把数据映射为数组下标(散列值),然后将数据存储在数组中对应下标的位置。当查询数据时,使用同样的哈希函数,将数据转化数组下标,从对应的数组下标的位置取数据。数据存储和查询的时间复杂度均为O(1)。哈希算法哈希算法的基本原理是将数据模一个质数,从而计算出散列值。例如散列值的范围是10510^5105,那么该质数可以比10510^5105稍大,尽可能远离2n2^n2n,可以取100003。冲突原创 2021-07-01 11:46:44 · 375 阅读 · 0 评论 -
数据结构——堆
堆堆是一棵完全二叉树。根据父结点和左右孩子的大小关系,有小根堆和大根堆之分。小根堆:堆中某个结点的值总是大于等于其父结点的值,即父结点的值总是小于等于其左右孩子的值。对于小根堆来说,根结点就是所有结点中值最小的元素。大根堆:堆中某个结点的值总是小于等于其父结点的值,即父结点的值总是小于等于其左右孩子的值。对于大根堆来说,根结点就是所有结点中值最大的元素。堆的存储由于堆是一棵完全二叉树,因此可以使用一维数组h[]进行元素存储,si表示堆中元素个数:根结点存储在数组下标为1的位置kkk的原创 2021-06-30 15:16:45 · 248 阅读 · 0 评论 -
数据结构——并查集
并查集并查集是一种树型的数据结构,用于处理一些不相交集合(disjoint sets)的合并及查询问题。基本操作合并两个集合询问两个元素是否在同一个集合中基本原理每个集合用一棵树来表示。数根的编号就是整个集合的编号。每个结点存储它的父结点编号,即p[x]表示x的父结点,那么:如果p[x] == x,表示x是树根x的集合编号可以这样求:while(p[x] != x) x = p[x];...原创 2021-06-29 12:50:36 · 105 阅读 · 0 评论 -
C++题解:绿色通道——单调队列优化DP
题目描述高二数学《绿色通道》总共有 nnn 道题目要抄,编号 1,2,…,n1,2,…,n1,2,…,n,抄第iii 题要花 aia_iai 分钟。小 Y 决定只用不超过ttt 分钟抄这个,因此必然有空着的题。每道题要么不写,要么抄完,不能写一半。下标连续的一些空题称为一个空题段,它的长度就是所包含的题目数。这样应付自然会引起马老师的愤怒,最长的空题段越长,马老师越生气。现在,小 Y 想知道他在这 ttt 分钟内写哪些题,才能够尽量减轻马老师的怒火。由于小 Y 很聪明,你只要告诉他最长的空题原创 2020-12-17 20:09:48 · 536 阅读 · 0 评论 -
C++题解:烽火传递——单调队列优化DP
题目描述烽火台是重要的军事防御设施,一般建在交通要道或险要处。一旦有军情发生,则白天用浓烟,晚上有火光传递军情。在某两个城市之间有nnn 座烽火台,每个烽火台发出信号都有一定的代价。为了使情报准确传递,在连续 mmm 个烽火台中至少要有一个发出信号。现在输入 n,mn,mn,m 和每个烽火台的代价,请计算在两城市之间准确传递情报所需花费的总代价最少为多少。输入格式第一行是两个整数 n,mn,mn,m,具体含义见题目描述;第二行 nnn 个整数表示每个烽火台的代价 aia_iai。输出格式原创 2020-12-17 13:28:03 · 1835 阅读 · 0 评论 -
单调队列求解滑动窗口最值:旅行问题
单调队列求解滑动窗口最值。原创 2020-12-17 10:37:03 · 537 阅读 · 0 评论 -
单调队列求滑动窗口最值:最大子序和
单调队列求滑动窗口最值:最大子序和原创 2020-12-16 11:23:45 · 964 阅读 · 0 评论 -
NOIP2016普及组复赛——T3海港
题目描述小 K 是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。小 K 对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况:对于第 iii 艘到达的船,他记录了这艘船到达的时间 tit_iti(单位:秒),船上的乘客数量 kik_iki ,以及每名乘客的国籍 xi,1,xi,2,…,xi,kix_{i,1},x_{i,2},…,x_{i,k_i}xi,1,xi,2,…,xi,ki 。小 K 统计了 n 艘船的信息,希望你帮忙计原创 2020-09-15 09:36:28 · 409 阅读 · 0 评论