[算法学习笔记]主席树
摘要:
前言 ~~出题出挂了,来好好学主席树了~~ 前置知识 线段树 没了 简介 对于使用线段树,我们可以较好地解决“带修改的全局第k大(或小)问题”。但是对于某个区间进行求第k大(或小)操作就不是那么容易了。 “可持久化” 可持久化一词在数据结构中十分常见。“可持久化”的意
【算法学习笔记】并查集
摘要:
简介 并查集是一种维护节点之间不相交集合关系的一种 树状 数据结构。在算法竞赛中较为常用。并查集的基本形态如下 一些定义 代表元素 代表元素是指代表这个集合的元素,通常由根节点表示。如上图的4号节点就是这个集合的代表元素。 父亲节点 和其他的树状数据结构类似,父亲节点就是某一节点
【算法学习笔记】倍增求最近公共祖先(LCA,非战斗机)
摘要:
问题简介 有一棵树,告诉你它的节点数 ,根的编号 以及所有的边。求 次询问,每次查询给定任意两个树上节点的最近公共祖先。 数据范围: 暴力 暴力很好理解,就是一个一个往他的父亲节点跳。学过并查集的同学们应该都知道,一个一个往上跳这种做法是很浪费时间的,
【算法学习笔记】分块——优雅的暴力
摘要:
“这个世界本是没有分块的,小数据的题多了,便有了分块。” ——沃镃基硕德 简介 分开是一种~~毒瘤~~优秀的数据结构,它的基本思想就是对一个数列分为几个小“块”,对于查询中的整块可以直接一扫而过,剩下的七零八碎的东西直接暴力。 很显然,我们会发现分的块越小,数量就越多,维护整块的信息就变的
【算法学习笔记】线段树
摘要:
解决问题 在树状数组那篇博客中,留下了一个坑: 区间修改区间查询 "树状数组博客传送门" 今天我们就要来解决这个问题 前置知识 二分 二叉树 ~~都很简单~~ 简介 线段树是一种可以较快维护 满足区间可加性 区间信息(如:区间和,区间积,区间最大最小等)的数据结构,其基本思
【算法学习笔记】前缀和与差分
摘要:
前缀和与差分 本篇博客适合初学者阅读,如有不周之处,欢迎各位大佬指正! 0.背景 想象一下,你有一个数组( 很长很长de那种 )你需要求出给定一段区间的和,并有多次询问,作为初学者你是否要循环把他们都加起来呢? 1.正文 前缀和 前缀和是一个数列A通过递推能够求出来的信息之
【算法学习笔记】RMQ问题与ST表
摘要:
RMQ问题 "P1816" 人话翻译 给定一个长度为的数列,然后有组询问,每次询问一个区间的最小值。 其中 暴力做法 很显然,暴力做法就是便历 。这个做法最
【算法学习笔记】树状数组
摘要:
树状数组 树状数组 是一种可以支持单点修改,较快维护前缀和的数据结构。他的实现方式是用一个数组维护一个“树状”的结构(如下图所示),记录一些区间的区间和,实现快速计算前缀和。 前置知识 前缀和 能看到这里的同学应该已经
【OI学习注意事项】
摘要:
1. 必备知识 普及组必学 1、模拟算法(暴力枚举),按照题目的要求,题目怎么说就怎么做,保证时间和正确性即可。 2、搜索与回溯,主要的是(深度优先搜索)和(宽度优先搜索),基本没有直接的暴力搜索。一般是记忆化搜索加剪枝,普及组第三题难度。 3、简单操作:如筛法、前缀和、快速幂、