随笔分类 - 数据结构_树状数组
摘要:思路:数据结构 提交:Inf次 题解: 树状数组套主席树 考虑静态区间第k大是一个前缀主席树,但是如果修改是 $O(nlogn)$ 的,查询时 $O(logn)$ ,考虑去均衡两部分的复杂度,如何均衡的维护前缀和?于是上了树状数组。于是乎主席树 $i$ 维护的是 $[i lowbit(i)+1,i]
阅读全文
摘要:思路:扩展欧拉定理 提交:$\geq5$次 错因:快速幂时刚开始没有判断$a$是否大于$p$ 题解: 用树状数组维护差分,查询时暴力从左端点的第一个数向右端点递归,若递归时发现指数变为$1$,则指数返回$1$;若递归出右端点,指数也返回$1$; cpp pragma GCC optimize (3)
阅读全文
摘要:~~用什么树状数组莫队多帅~~ 思路:树状数组$or$莫队(其实还是推荐树状数组$QwQ$) 提交:~~我告诉你我卡了一会儿常~~ 卡不满原因:没有用奇偶性排序 题解: 莫队: 就是裸的莫队,把询问排序$etc.$ cpp // luogu judger enable o2 include incl
阅读全文
摘要:好思路,好思路。。。 思路:前缀异或差分 提交:1次 题解:区间修改,单点查询,树状数组,如思路$qwq$ 2019.07.17
阅读全文
摘要:题意: Description 有n件商品,选出其中的k个,要求它们的总价为奇数,求最大可能的总价。 有n件商品,选出其中的k个,要求它们的总价为奇数,求最大可能的总价。 Input 第一行一个整数n(1<=n<=1000000),表示商品数量。接下来一行有n个整数,表示每件商品的价格,范围在[1,
阅读全文
摘要:题意:有编号1~n乱序排列的奶牛,给出了每一个奶牛前小于自己编号的奶牛数目 维护一个树状数组,下标是编号,值为$0/1$标识是否存在,很显然最后一个牛的编号是知道的,我们在树状数组上二分出前缀和为小于这个牛编号的奶牛数目的位置,这个位置代表的编号就是这头奶牛的编号。 2019.06.27
阅读全文
摘要:太神仙了这题。。。 原来的地面上升,可以倒着操作(时光倒流),转化为地面沉降,最后的答案就是每个点的深度。 下面的1,2操作均定义为向下沉降(与原题意的变换相反); 首先这个题目只会操作前缀和后缀,并且只会把前缀中的数(纵坐标)变小(2操作),后缀中的数(横坐标)变大(1操作),所以具有单调性,可以
阅读全文
摘要:这题让我升华。。还好只重构了一遍 首先我们发现:$n$较小时,整个队伍的形态 跟 $n$ 比较大时的局部是一样的 所以我们预处理出这个队伍的形态,和每一行每个位置的质因子个数的前缀和,$O(nlogn)$,然后每次回答$log(n)$ 方法: 1.线性筛,筛出每个数值因子的个数; 2.然后用一个树状
阅读全文
摘要:真是道好题。。。感到灵魂的升华。。。 按dfs序建树状数组,拿前缀和去求解散块; 按点的标号分块,分成一个个区间,记录区间子树和 的 总和。。。 具体地,需要记录每个点u修改后,对每一个块i的贡献,记为t[u][i] 计算思路:dfs时,每到一个新的点,就让++c[其所在块],为了记录每个块中的点出
阅读全文
摘要:因为开根号能使数字减小得非常快 所以开不了几次(6次?)很大的数就会变成1..... 所以我们可以维护区间最大值,若最大值>1,则继续递归子树,暴力修改叶节点,否则直接return (好像也可以维护区间被开方的次数,但我不会。。。QAQ) upd 2019.06.15 可以用树状数组做,如果这个数已
阅读全文
摘要:基础线段树(辣鸡的不行) 发现自己线段树除了会维护加法和乘法就啥也不会了QWQ太菜了 瞎写了一个维护gcd的 首先,gcd(x,y)= gcd(x,y-x) 并且很容易推广到n个数,所以我们可以把原数组差分一下, find时就左右子树大力合并gcd,最后和左端点元素本身取gcd; upd时就直接修改
阅读全文
摘要:树状数组帅炸了。。。。又被一道水题轻虐,又被学长指出了一个错误。。。。我太菜了QAQ 开两个树状数组,一个记录左端点,一个记录右端点; 共有cnt(总数) - (<l的右端点数目) - (>r的右端点数目) 种地雷 2019.04.07
阅读全文

浙公网安备 33010602011771号