算法和数据结构
文章平均质量分 75
算法和数据结构
陈煜晗
我想变强
展开
-
【算法笔记】线段树
线段树(Segment Tree) 是一个优雅的数据结构。他能用O(logn)的时间复杂度实现 单点修改 区间查询 区间修改 ,但这些操作并非线段树的操作上线,原创 2021-04-05 00:22:02 · 198 阅读 · 0 评论 -
【算法笔记】树状数组
树状数组(Binary Index Tree, BIT)支持两种操作,时间复杂度均为O(logn): 单点修改:更改数组中一个元素的值 区间查询:查询一个区间内所有元素的和 树状数组的引入 对于普通数组而言,单点修改的时间复杂度是O(1),但区间求和的复杂度是O(n) 对于前缀和而言,区间求和的复杂度是O(1),但单点修改的时间复杂度是O(n) 在单点修改与区间查询比例为1:K的要求下 普通数组的时间复杂度为 (n+K*O(n)) / (K+1) 综合复杂度为O(n) 前缀和的时间复杂度为 (O(n)+K原创 2021-04-03 12:07:01 · 194 阅读 · 0 评论 -
【算法笔记】 BFS
No.1 【hdu 1312】 #include<queue> #include<iostream> #define check(x,y)(x<wx&&x>=0&&y>=0&&y<hy) using namespace std; char room[23][23]; int dir[5][3]={ {-1,0},{0,-1},{1,0},{0,1} }; int wx,hy,sum=0; struct n原创 2020-10-27 21:22:41 · 201 阅读 · 0 评论