
树状数组
文章平均质量分 64
树状数组大法
SSL_DFT
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【洛谷 P5367】 【模板】康托展开【数论】【树状数组】
【洛谷 P5367】【模板】康托展开 题目大意: 给你一个排列,问你按照字典序它是第几个排列? 思路: 首先,最简单的暴力做法就是用深搜从头开始将所有排列按照字典序生成,看看这个排列在第几个位置。 时间复杂度 O(n!)O(n!)O(n!),然后 n≤106n\leq 10^6n≤106,你算到宇宙灭亡估计都算不出来。 所以这里我们引入康托展开,对于每一个排列 a[ ]a [~]a[ ],我们有: f[i]=∑j=i+1n(a[i]<a[j])f[i]=\sum_{j=i+1}^{原创 2021-08-30 09:58:47 · 239 阅读 · 0 评论 -
洛谷 P3810 【模板】三维偏序(陌上花开)【cdq 分治】【树状数组】
【洛谷 P3810】 【模板】三维偏序(陌上花开) 题目大意: 给你一堆数,每个数有三个权值a[i],b[i],c[i]a[i],b[i],c[i]a[i],b[i],c[i] 设 f[i]f[i]f[i] 表示 ∑(a[j]≤a[i]) && (b[j]≤b[i]) && (c[j]≤c[i]) i !=j\sum(a[j]\leq a[i])~\&\&原创 2021-08-25 11:49:51 · 226 阅读 · 2 评论 -
2021-08-24 SSL 模拟赛 T2 【莫队】【树状数组】
21-08-24 SSL 模拟赛 T2 依旧没有标题。 题目大意: 题目的描述已经够简略了······ 思路: 70%: 因为数据太水,直接暴力O(n∗m)O(n*m)O(n∗m) 可以拿70分,但是根据大佬的说法,这 70% 是给主席树的(注意题目中的 l=1l=1l=1)赛时我当然是打了暴力啦。 100%: 如果没有数据所处的范围[a,b][a,b][a,b],那么这一道题就是一个莫队的模板题 (比模板还模板) 对于要答案在区间[a,b][a,b][a,b]的范围内,我们可以使用一个树状数组在值域上维原创 2021-08-25 07:53:31 · 123 阅读 · 0 评论 -
2021-08-10 SSL 模拟赛 T3 (树状数组维护版)(最优解)
2021-08-10 SSL 模拟赛 T3 (树状数组维护版) ~~怎么还是没有标题??~~啦啦啦我又回来了 本解法是暴力在时间复杂度边缘疯狂徘徊的蒟蒻。 本解法是树状数组的降维打击。 题目描述:戳这里 思路: 在暴力版里我已将讲过了,可以去看看我的暴力版 ...原创 2021-08-10 19:23:19 · 103 阅读 · 0 评论 -
树状数组模板:单点修改区间查询
树状数组模板:单点修改区间查询 代码: #include<iostream> #include<cstdio> #include<algorithm> #include<queue> #include<cmath> #include<cstring> #define r register #define rep(i,x,y) for(r ll i=x;i<=y;i++) #define per(i,x,y) for(r ll i=原创 2021-07-08 08:19:33 · 108 阅读 · 0 评论 -
【ybt高效进阶4-2-4】区间修改区间查询 【树状数组模板】
区间修改区间查询 【ybt高效进阶4-2-4】 题目大意: 给定一个数组,让其支持区间修改,区间求和的操作。 思路: 树状数组+差分 我们设ddd数组是aaa数组的差分数组,那么我们有a[i]=∑j=1id[j]a[i]=\sum\limits_{j=1}^{i}d[j]a[i]=j=1∑id[j] 那么求区间的前缀和类比单点修改区间查询,用相减法,区间末值-区间开头。 那么我们有:∑i=1na[i]=∑i=1n∑j=1id[j]\sum\limits_{i=1}^{n}a[i]=\sum\limits_原创 2021-07-08 20:17:07 · 126 阅读 · 0 评论