会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
今人不见古时月,今月曾经照古人
博客园
首页
新随笔
联系
订阅
管理
2022年5月28日
高中数学
摘要: 并非原创,仅是整理,请见谅
阅读全文
posted @ 2022-05-28 08:54 Audrey_Hall
阅读(51)
评论(0)
推荐(0)
2022年5月27日
并查集
摘要: 并查集是一种多叉树,用于处理一些不相交集合的合并与查询问题。 初始化 每个结点单独作为一个集合。 查询 求元素所在集合的代表元素,即根结点。 合并 将两个元素所在的集合合并为一个集合。 合并之前,应先判断两个元素是否属于同一集合,用上面的查询来实现。 实现流程 动态集合中每一个元素由一个对象来表示,
阅读全文
posted @ 2022-05-27 17:39 Audrey_Hall
阅读(58)
评论(0)
推荐(0)
堆
摘要: 堆结构是一种数组对象,是一棵完全二叉树。 性质 若当前节点编号为i,父结点则为i/2,左孩子为2i,右孩子为2i+1。 堆的结点数$\le$数组长度len 下图为一个大根堆:每个结点均小于其父结点,树根是堆中最大的结点,小根堆反之。 添加 往堆中添加一个元素。 重复n次添加操作,即可建立一个小根堆。
阅读全文
posted @ 2022-05-27 16:48 Audrey_Hall
阅读(272)
评论(0)
推荐(0)
st表
摘要: 位运算 与& 或| 异或^ 左移<< 右移>> \(x<<y=x·2^{y}\) \(x>>y=\frac{x}{2^{y}}\) \(2a+1=(a<<1)|1\) \(a\)%\(2=a\)&\(1\) st表 当st表合并的复杂度为$O(1)$时,st表构建的复杂度为$O(nlogn)$,查询
阅读全文
posted @ 2022-05-27 15:43 Audrey_Hall
阅读(130)
评论(0)
推荐(0)
RMQ
摘要: RMQ(Range Mininum/Maxinum Query) 区间最值问题 解决方法 若需要修改,常常使用线段树等数据结构。 若不需要修改,一般使用st表。 例题 给定M及N个数(1<N<=2500000),每个数在0到100000之间。 输出每M个数中的最大数,即1M中的最大数,2M+1中的最
阅读全文
posted @ 2022-05-27 10:37 Audrey_Hall
阅读(51)
评论(0)
推荐(0)
数论
摘要: 组合数学 排列与组合 抽屉原理(鸽巢原理) 把n+1个苹果放入n个抽屉里,则至少有一个抽屉放了两个或两个以上的苹果; 从另一个角度来说,把n-1个苹果放入n个抽屉,则至少有一个抽屉是空的。 如果每个抽屉代表一个集合,每一个苹果就可以代表一个元素。 假如有n+1个元素放入n个集合,其中必定有一个集合里
阅读全文
posted @ 2022-05-27 10:09 Audrey_Hall
阅读(705)
评论(0)
推荐(0)
2022年5月24日
OI常见数据结构(NOI难度,大概)
摘要: 线段树、动态开点线段树、线段树合并、可持久化线段树(主席树)、二维线段树 树状数组、树状数组套线段树(函数式线段树) 平衡树:Splay,Treap,可持久化Treap,替罪羊树(、SBT、红黑树) kD-Tree,树套树 堆(优先队列),可并堆 字符串数据结构:字典树、AC自动机、后缀数组、后缀自
阅读全文
posted @ 2022-05-24 17:10 Audrey_Hall
阅读(226)
评论(0)
推荐(0)
线段树
摘要: 前置知识 二叉树 定义 基本操作复杂度: \(O(logn)\) 线段树是一棵二叉树,每个节点表示序列上的一段区间,其中根节点表示区间[1,n]。 从根节点开始,只要区间长度不为1,就将区间划分为两半,并分给两个子节点。 若当前节点表示区间[l,r], 当l≠r时,左孩子表示[l,(l+r)/2],
阅读全文
posted @ 2022-05-24 17:08 Audrey_Hall
阅读(155)
评论(0)
推荐(0)
区间操作总结
摘要: 区间求和 区间最大值 区间修改 单点修改 前缀和 √ × × × 树状数组 √ √ × √ 线段树 √ √ √ √ 前缀和一般用于固定的数组; 树状数组功能较少,但代码简易、常数小; 线段树易于理解,功能强大,更灵活; 并非原创,仅是整理,请见谅
阅读全文
posted @ 2022-05-24 15:04 Audrey_Hall
阅读(54)
评论(0)
推荐(0)
树状数组
摘要: lowbit() lowbit(x)是x的二进制表达式中最低位的1所对应的值(即返回x二进制为一的最低位数值)。 lowbit(0)=0 常用写法: int lowbit(int x){ return x&(-x); } //利用了负整数的补码特性 用法 维护区间 设节点编号为x,那么该节点维护的区
阅读全文
posted @ 2022-05-24 11:38 Audrey_Hall
阅读(78)
评论(0)
推荐(0)
2022年5月23日
前缀和/差分
摘要: 前缀和 前缀和是一个数组的某项下标之前(包括此项元素)的所有数组元素的和。 设 \(b [ ]\) 为前缀和数组, \(a [ ]\) 是原数组, 应用 区间求和 一维区间 求解 \([ L , R ]\) 区间数字之和。 因为$ L < R $ ,所以 \(ans = S [ R ] - S [
阅读全文
posted @ 2022-05-23 11:52 Audrey_Hall
阅读(113)
评论(0)
推荐(0)
2022年3月29日
图论
摘要: 图论 图论是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。 树 树是一种数据结构,它是由n(n≥1)个有限节点组成一个具有层次关系的集合。把它叫做“树
阅读全文
posted @ 2022-03-29 21:28 Audrey_Hall
阅读(1220)
评论(0)
推荐(0)
2022年3月26日
STL
摘要: STL STL 是“Standard Template Library”的缩写,中文译为“标准模板库”。 #include<algorithm> #include<bits/stdc++.h>(推荐) sort() sort函数用于给一个数组进行排序,在algorithm库里。 使用方法为sort(
阅读全文
posted @ 2022-03-26 18:33 Audrey_Hall
阅读(313)
评论(0)
推荐(0)
noip基础算法
摘要: 枚举 对于一些简单的题目,我们或许不需要用什么太巧妙的方法,只需要把所有的可能性列举出来,然后逐一试验就可以了。 总的来说,枚举就是通过列举所有的可能性进行一一判断检查。 方法 通过事先把各种可能发生的事情都列举一遍,为后面求解提供结果。 总的来说,两种方法: 递归枚举,这种方法往往更直观; 递推(
阅读全文
posted @ 2022-03-26 18:31 Audrey_Hall
阅读(321)
评论(0)
推荐(0)
自定义函数
摘要: 函数的定义 函数定义的语法形式 数据类型 函数名(形式参数表){ 函数体 //执行语句 } 注意 函数的数据类型是函数的返回值类型(若数据类型为 void ,则无返回值)。 函数名是标识符,一个程序中除了主函数名必须为main外,其余函数的名字按照标识符的取名规则可以任意选取,最好取有助于记忆的名字
阅读全文
posted @ 2022-03-26 08:56 Audrey_Hall
阅读(986)
评论(0)
推荐(0)
下一页
公告