树状数组
01232012
lnssyzx的蒟蒻
展开
-
bzoj 4627:[BeiJing2016]回转寿司
算法:裸树状数组/裸线段树 难度:(NOIP-) 设s[i]为前缀和,差分,把序列和转化为前缀相减,即选出满足L≤s[x]−s[y]≤R的x>y的数个数。 那么我们枚举x,即可得到y的范围,二分找以前的满足条件的yy的个数(lowerbound&&upper_bound)。可以维护1到当前位置树状数组,在树状数组中查询个数,最后再将该数加入到树状数组中。但是数...原创 2018-09-28 21:08:58 · 208 阅读 · 0 评论 -
bzoj 1878:[SDOI2009]HH的项链
算法:树状数组 难度:(NOIP+) 本蒟蒻只会树状数组(据大佬亲测,主席树卡空间,正解就是“Binary Index Tree”!)!采用离线算法,将每次询问按照右节点排序,只有它会影响到树状数组求和,然后扫整个序列,记录上一次此颜色出现的位置,val:+1/-1即可 注意:N 个整数,表示依次表示项链中贝壳的编号(编号为0 到1000000 之间的整数)。(这段话来自题目描述),记...原创 2018-09-29 19:47:15 · 124 阅读 · 0 评论 -
bzoj 3211:花神游历各国/3038 上帝造题的七分钟2(luogu 4145)
算法:并查集+树状数组/分块/线段树 难度:(NOIP+) 简述题目:区间开方,区间求和 区间求和很容易想到树状数组/线段树,可是区间开方怎么搞呢?暴力O(n*n),TLE到飞 我们可以发现,一个10^12的数,最多开6次方(向下取整)可以变成1,变成1之后,无论开多少次方都是1,所以就可以跳过这个数,这个可以用并查集搞,开始时父亲都指向自己,如果变成1,就把父亲指向下一个位置即可...原创 2018-09-29 19:49:37 · 272 阅读 · 0 评论 -
bzoj 3192:[JLOI2013]删除物品(luogu 3253)
算法:模拟+树状数组/线段树 难度:(NOIP+) 暴力算法很明显,模拟就好,时间复杂度O(n^2); 两个栈可以“捏”到一个数组中,而栈顶则是将这个数组拆成两个栈的分割点(pp)。 于是移动就变成了pp的移动,每次移动时都求出目的分割点和pp之间的物品数目即可(树状数组维护区间物品数目)。时间复杂度O(nlogn) 注意:此题树状数组query时细节极多!!!但是80%的...原创 2018-09-29 19:51:29 · 145 阅读 · 0 评论 -
[SHOI2007]园丁的烦恼
算法:树状数组 ......有待填坑原创 2018-09-29 19:52:52 · 199 阅读 · 0 评论