随笔分类 - 数据结构---线段树
摘要:题意:有N个学生M条操作,0<N<=200000,0<M<5000,要么查询某区间内学生的最高分,要么更改某学生的成绩。 分析:原理和线段树点修改求和类似。
阅读全文
摘要:题意:求区间最大值-最小值。 分析: 1、线段树 2、RMQ Sparse-Table算法,预处理时间O(nlogn),查询O(1)。
阅读全文
摘要:题意:区间add,区间求和。
阅读全文
摘要:题意:给定一个序列,求分别将前m个数移到序列最后所得到的序列中,最小的逆序数。 分析:m范围为1~n,可得n个序列,求n个序列中最小的逆序数。 1、将序列从头到尾扫一遍,用query求每个数字之前有多少个大于该数字的数,方法如下。 (1)将已经扫过的数字所对应的位置标记,通过query求该数字之后有
阅读全文
摘要:题意:n个棍子,初始值全为1,给定Q个区间,分别赋值,问n个棍子的总值。 分析:lazy标记主要体现在update上。 当l <= L && R <= r时,该结点的子结点值不再更新,取而代之的是给该结点一个lazy值,以记录下来该结点的子结点并没有更新。 当赋值的区间落在子结点上时,才将lazy标
阅读全文
摘要:题意: 1、Add i j,i和j为正整数,表示第i个营地增加j个人(j不超过30) 2、Sub i j ,i和j为正整数,表示第i个营地减少j个人(j不超过30); 3、Query i j ,i和j为正整数,i<=j,表示询问第i到第j个营地的总人数; 4、End 表示结束,这条命令在每组数据最后
阅读全文
摘要:题意:有n个1*wi的传单要放在一个h*w的宣传板上,在尽量往上放的基础上尽量往左放,问每个传单放在第几行,若无法放上,则输出-1。 分析:二分,用线段树维护,若前半区间所有行的最大值大于等于wi,那么继续在前半区间搜索,否则搜索后半区间。
阅读全文
摘要:题意:已知n个矩阵(下标从1开始),求下标x~y区间矩阵的乘积。最多m次询问,n ( 1 <= n <= 30,000) and m ( 1 <= m <= 30,000)。 分析: 1、矩阵初始化为单位矩阵,因为要做乘积,E*A=A。 2、因为输出矩阵的所有值范围在0~r-1,所以要对r取余。
阅读全文
摘要:题意:对于一个长度为n的序列进行m次操作(1 ≤ n ≤ 100000, 1 ≤ m ≤ 100000),有以下三种操作: 分析:线段树
阅读全文

浙公网安备 33010602011771号