数据结构
文章平均质量分 52
中二病没有蛀牙
这个作者很懒,什么都没留下…
展开
-
面试复习之数据结构
树 iii的左孩子2i2i2i iii的右孩子2i+12i+12i+1 分块 索引顺序查找 块内无序,块内有序 索引折半查找(速度嗖嗖的) low超出索引表,查找失败 排序算法 评价标准: 时间复杂度 空间复杂度 稳定性(关键字相同的元素的在排序之后相对位置不改变) 分类:内部排序,外部排序 插入排序 希尔排序(基于插入排序) 初始时d=n2d = \frac{n}{2}d=2n 冒泡排序 交换排序包括冒泡排序和快速排序 快速排序 选择排序 选择排序包括简单选择排序还有堆排序 堆排序 大根堆:原创 2021-09-23 22:41:42 · 567 阅读 · 2 评论 -
运输计划 lca+树上差分/前缀和+二分
链接:https://www.acwing.com/problem/content/description/523/ 思路: 一个涉及了一堆知识点的老复杂的题目了。lca+树上差分+二分 首先看数据范围是3e5,那么想一下怎么可以把复杂度降到 log(n)log(n)log(n) 题目中要求的是完成m个运输计划所需的最短的时间。即m条路径中的最大值最小,那么就需要在出m个要求的路径中,找出两个点间重复的那段权值最大。 然后发现这个时间是满足单调性的,可以想到对答案二分。设时间为mid,其实这里的时间就是路径原创 2021-03-28 11:34:21 · 218 阅读 · 0 评论 -
树状数组和线段树
树状数组 某个位置加上一个位置(单点修改)O(logn)O(log_n)O(logn) 求某一个前缀和 (区间查询) O(logn)O(log_n)O(logn) c(x)=c(x)+c(lowbit(x)+……)c(x) = c(x) + c(lowbit(x)+……)c(x)=c(x)+c(lowbit(x)+……) lowbit(x)=x&−xlowbit(x) = x\&-xlowbit(x)=x&−x 树状数组公式:c(x)=(x−lowbit(x),x]c原创 2021-06-01 22:31:56 · 94 阅读 · 0 评论 -
Codeforces 709 div2 DPlaylist 双端队列+链表
链接:https://codeforces.com/contest/1484/problem/D 题意: 给你一个数组,每次找到一对互质的数时,删去其中第二个,不能连续删除,求最终删除的顺序。 思路: 按照题目模拟就好了,需要用数据结构优化。 每次取出队首的数,判断是否和它的下一位互质,如果是的话将下一位删去,用数组模拟链表,就只需要将nex[x]指向nex[nex[x]],再将队首的数放回队尾。直到队列为空。 这个题一开始我只用了双端队列来写,按上述思路模拟,也是对的,不过最后一个点会超时。就很神奇,加了原创 2021-03-30 11:57:02 · 177 阅读 · 0 评论