![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树状数组
ln2037
用心雕琢我的艺术品。
展开
-
树状数组讲解
树状数组能实现的功能线段树都能实现,所以之前是没打算仔细看它的。但今天做了一道题,,让我感受到了树状数组相对于线段树所具有的的优势。 看下面三张图。 第一张图unaccepted的都是用线段树写的出现了tle,第二张图是用线段树写的优化后ac的详细信息,第三张是用树状数组写的。仔细看看后两张图的第九第十组样例,,不难发现线段树太慢了(相对而言)。于是,,我还是研究研究树状数组吧。。逃 上图是树状数...原创 2019-10-03 23:19:21 · 150 阅读 · 0 评论 -
P2345 [USACO04OPEN]MooFest G 【树状数组】
题目描述 约翰的N 头奶牛每年都会参加“哞哞大会”。哞哞大会是奶牛界的盛事。集会上的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等。它们参加活动时会聚在一起,第i 头奶牛的坐标为Xi,没有两头奶牛的坐标是相同的。奶牛们的叫声很大,第i 头和第j 头奶牛交流,会发出max{Vi; Vj}×|Xi − Xj | 的音量,其中Vi 和Vj 分别是第i 头和第j 头奶牛的听力。 假设每对奶牛之间同时都在说话,请计算所有奶牛产生的音量之和是多少。 输入格式 • 第一行:单个整数N,1 ≤ N ≤ 20000 • 第二原创 2020-09-14 22:59:10 · 225 阅读 · 0 评论 -
P3368 模板【树状数组】2
题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某区间每一个数数加上 xxx; 求出某一个数的值。 输入格式 第一行包含两个整数 NNN、MMM,分别表示该数列数字的个数和操作的总个数。 第二行包含 NNN 个用空格分隔的整数,其中第 iii 个数字表示数列第 ii i 项的初始值。 接下来 MMM 行每行包含 222 或 444个整数,表示一个操作,具体如下: 操作 111: 格式:1 x y k 含义:将区间 [x,y][x,y][x,y] 内每个数加上 kkk; 操作 222: 格式:2原创 2020-09-14 22:56:09 · 140 阅读 · 0 评论 -
P3374 模板【树状数组】1
题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某一个数加上 xxx 求出某区间每一个数的和 输入格式 第一行包含两个正整数 n,mn,mn,m,分别表示该数列数字的个数和操作的总个数。 第二行包含 nnn 个用空格分隔的整数,其中第 iii 个数字表示数列第 iii 项的初始值。 接下来 mmm 行每行包含 333 个整数,表示一个操作,具体如下: 1 x k 含义:将第 xxx 个数加上 kkk 2 x y 含义:输出区间 [x,y][x,y][x,y] 内每个数的和 输出格式 输出包原创 2020-09-14 22:52:58 · 134 阅读 · 0 评论