随笔分类 - 数据结构
摘要:线段树,顾名思义就是一棵树,树上每个节点都是一个线段(区间)。 线段树的建树、做单点修改、区间查询都是O(logn)的,区间修改的话如果是单点修改叠加那就是O(nlogn),但是可以用懒惰标记优化。 这些是基础的线段树,进阶部分后面再写了(还没学到). 先上一些线段树基操: #include<bit
阅读全文
摘要:树状数组不难理解,学的还算轻松,它的核心就是一个lowbit的运用,学之前还特地把位运算重新学了一遍。 //位运算符:& | ^ ~ << >> int a1=60,b1=13; //在二进制中, //a=00111100 //b=00001101 int c1=a1&b1;//对应每一位做与运算,
阅读全文
摘要:有这样一些操作:给定一个区间(n,m),然后对这个区间的子区间(a,b)进行一些操作,最后询问某个点的状态。 这种题一般数据大,不能直接用暴力解决,这个问题的解法就是差分数组。 设一个数组a[],a[i]表示第i个点的状态; 设一个数组d[],其中d[1]=a[1],d[i]=a[i]-a[i-1]
阅读全文

浙公网安备 33010602011771号