数据结构
cqbz_tanhaoran
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
「题解」「数据结构」树状数组3
接着上文说离散化for (int i = 1; i <= n; i ++) { cin >> a[i].val; a[i].id = i;}sort(a + 1, a + n + 1); //定义结构体时按val从小到大重载for (int i = 1; i <= n; i ++) b[a[i].id] = i; //将a[i]数组映射成更小的值,b[i]就是a[i]对应的rank(顺原创 2020-07-26 22:11:41 · 223 阅读 · 0 评论 -
「题解」「数据结构」树状数组2
接着上文说(上文题目打太多了,卡的很)这道题如果还像上一题那样建树状数组,必然超时我们要发挥自己模仿的天分,使得原封不动地搬下来就可以A了前面说到跟上题一样建树状数组要超时,那我们倒过来,使得单点访问变为Sum,区间修改变为update,有同学肯定想到了差分数组没错就是他我们在区间修改,就相当于修改差分数组的两个值比如我们给区间[l,r]加上x,就相当于给pl加x,给pr+1减x而我们单点查询,就相当于求差分数组的前缀和代码#include <cstdio>const i原创 2020-07-26 21:58:46 · 427 阅读 · 0 评论 -
「题解」「数据结构」树状数组1
前言 这里我们不描述其用法,在后面的题中详细描述 单点修改,区间查询 区间修改,单点查询 区间修改,区间查询 求逆序对数单点修改,区间查询 题目描述 这是一道模板题。给定数列 a[1], a[2], \dots, a[n] ,你需要依次进行 q 个操作,操作有两类:1 i x:给定 i,x ,将 a[i]原创 2020-07-26 21:31:21 · 667 阅读 · 0 评论
分享