摘要:        
堆 定义:堆(Heap)是计算机科学中一类特殊的数据结构,是最高效的优先级队列。堆通常是一个可以被看做一棵完全二叉树的数组对象。 堆分为大根堆和小根堆(从小到大用大根堆,从大到小用小根堆) 堆排序: 1、将带排序的序列构造成一个大顶堆,根据大顶堆的性质,当前堆的根节点(堆顶)就是序列中最大的元素;     阅读全文
posted @ 2022-07-27 22:29
神茗掉线中(冲AC)
阅读(54)
评论(0)
推荐(0)
        
            
        
        
摘要:        
倍增 ●所谓倍增,就是把一个数据规模为n的问题分解成若干个2^ai的和,预处理数据范围内所有2^ai 的情况,再将这些规模为2^ai 的问题通过一定的方法合并,得出原问题的解。 ●分治是把整个问题分成几个互不重复的子问题,合并求解;倍增是找互为倍数关系的子问题之间的联系,再合并求解。 ●可以认为,倍    阅读全文
posted @ 2022-07-27 21:42
神茗掉线中(冲AC)
阅读(85)
评论(0)
推荐(0)
        
            
        
        
摘要:        
分治/二分 ●分治/二分算法本质上都是采用了“分而治之”的思想,因此放在一起来讲。 ●所谓分而治之,即把一个大的问题转化成一个、两个或多个小的问题之和。 P1908 逆序对 #include <iostream> #include <cstdio> #include <queue> using na    阅读全文
posted @ 2022-07-27 21:35
神茗掉线中(冲AC)
阅读(93)
评论(0)
推荐(0)
        
            
        
        
摘要:        
STL 在OI里面最常用的几个容器: stack,queue,deque,priority_queue,vector,set,map stack, queue, deque ●分别是栈、队列、双端队列。 ●双端队列的入队和出队操作在两端都可进行。 ●据说双端队列常数不小,建议少用。 priority    阅读全文
posted @ 2022-07-27 21:20
神茗掉线中(冲AC)
阅读(28)
评论(0)
推荐(0)
        
            
        
        
摘要:        
前缀和 *一维 定义:一维前缀和S[i]表示的就是a[1]+a[2]+…+a[i]。 作用:求a[i]~a[j]的和 例如:有一列数字{a},多次询问一个区间[L,R]的和。n,m<=1000000。n 做法很简单,令s[p]=s[p-1]+a[p]=a[1]+a[2]+…+a[p],那么: a[L    阅读全文
posted @ 2022-07-27 20:54
神茗掉线中(冲AC)
阅读(52)
评论(0)
推荐(0)
        
            
        
        
摘要:        
单调栈 定义:栈内元素单调按照递增(递减)顺序排列的栈 基本作用:可以从数组中找到左右两边比x大(小)的数,时间复杂度为O(n) 单调栈的基本操作: ●为了维护栈的单调性,在进栈过程中需要进行判断,具体进栈过程如下:假设当前进栈元素为e, ●对于单调递减栈,从栈顶开始遍历元素,把小于e或者等于e的元    阅读全文
posted @ 2022-07-27 19:19
神茗掉线中(冲AC)
阅读(39)
评论(0)
推荐(0)
        
                    
                
浙公网安备 33010602011771号