ACM线段树
线段树,BIT
Ordinary_yfz
知乎个人主页zhihu.com/people/zyf-98-4,现在涉及CV,transfer learning,unsupervised,GAN,REID,OOL很多研究方向,会经常写一些综述/论文阅读笔记。
展开
-
POJ 2182 Lost Cows【题解报告|贪心|树状数组|二分】
题目链接题目大意每个奶牛都有一个编号,1- N 从第二个牛开始给出前面比她编号小的牛的个数,问你求牛的编号序列思路分析从后往前看,最后一头牛可以确定它的号码,因为知道了前面有k头比它小的,k+1即为它号码。记a[i]为第i头牛在它前面有多少头牛号码比它小的(即输入值),那么如何计算第k-1头牛的编号?我们从1到N进行遍历,记录a[k−1]a[k-1]a[k−1]个没有访问过的编号(没有访问过即没有被他之后的牛a[k]a[k]a[k]所使用的编号),那么第a[k]a[k]a[k]个编号即该牛的编号,原创 2020-06-30 22:38:20 · 288 阅读 · 0 评论 -
2777 Count Color:为什么要进制表示?+一组数据+易错点
题目大意选择问题解决和程序设计作为可选课程,要求您解决各种问题。 在这里,我们遇到了一个新问题。有一块很长的木板,其长度为L厘米,L是一个正整数,因此我们可以将木板均匀地划分为L个段,并用1、2,… L从左到右分别标记为1厘米 长。 现在,我们必须为板着色-只有一种颜色的一个段。 我们可以在板上执行以下两项操作:1.“ C A B C”用颜色C为从段A到段B的板着色。2.“ PA B”输出...原创 2020-04-04 15:32:03 · 216 阅读 · 0 评论 -
2104:K-th Number:以题为例,一文搞懂主席树的原理+代码(我画了一天图,就是为了你能看懂!)
文章目录题目大意思路分析主席树简介建树实例查询实例存储问题代码剖析预定义元素+建树更新操作查询操作离散化+各个子树的建立题目大意题目链接给定数组a[1...n]a[1...n]a[1...n],对每一个查询Q(i,j,k)Q(i,j,k)Q(i,j,k),求出[i,j][i,j][i,j]区间中第kkk大的数字。思路分析最简单的方法无非对所求的区间[i,j][i,j][i,j],我们对这...原创 2020-03-31 13:06:13 · 844 阅读 · 2 评论 -
2528:Mayor's posters:为什么要线段树?为什么要离散化?一文搞懂该题
题目大意阿布扎比(Bytetown)的公民无法忍受,市长竞选活动的候选人一直在各地兴高采烈地张贴选举海报。 市议会最终决定建造一个选举墙来放置海报,并引入以下规则:每个候选人都可以在墙上贴一张海报。所有海报的高度等于墙的高度; 海报的宽度可以是任意整数个字节(byte是字节镇的长度单位)。墙分为多个部分,每个部分的宽度为一个字节。每个海报必须完全覆盖连续多个墙段。他们建造了一堵1000...原创 2020-03-30 23:14:01 · 174 阅读 · 0 评论 -
这可能是我见过最详细的线段树教程(基础+进阶)
一、简介线段树psps : _此处以询问区间和为例。实际上线段树可以处理很多符合结合律的操作。(比如说加法,a[1]+a[2]+a[3]+a[4]=(a[1]+a[2])+(a[3]+a[4]))线段树之所以称为“树”,是因为其具有树的结构特性。线段树由于本身是专门用来处理区间问题的(包括 RMQ 、 RSQ 问题等。对于每一个子节点而言,都表示整个序列中的一段子区间;对于每个叶子节点而言...原创 2020-03-29 23:28:00 · 2382 阅读 · 1 评论 -
2352 Stars:数个星星都这么麻烦!如何从暴搜进阶到树状数组
题目大意天文学家经常研究星图,在星图中,恒星由平面上的点表示,每颗恒星都有笛卡尔坐标。让一颗恒星的rank是他左下角的星星的数目综合。原题链接思路分析首先想到了暴搜没错我就是这么弱,不试一下怎么行呢?#include<iostream>#include<iomanip>#include<string.h>#include<vector>...原创 2020-03-28 09:46:12 · 219 阅读 · 0 评论 -
POJ 2155:Matrix-二维树状数组,矩阵翻转详细题解
题意给定一个矩阵,初始化为0,现在可以进行两种操作,一种是查询某个点的值是 0 还是 1。另一种是让这个矩阵的一个子矩阵内的值取反。思路首先这题虽然看起来像是一个区间修改,单点查询的题,但是可以转化成单点修改,查询区间和。首先考虑一维的情况,我要一段区间取反,假设是 [l, r]。那么我只需要book[l]+1,book[r+1]+1,假设查询 k 的时候,只需要查询前 k 的和 mod...转载 2020-03-08 17:28:03 · 312 阅读 · 0 评论 -
二维树状数组详解--矩阵所有元素同时加减,单点查询
当要频繁的对数组元素进行修改,同时又要频繁的查询数组内任一区间元素之和的时候,可以考虑使用树状数组.通常对一维数组最直接的算法可以在O(1)时间内完成一次修改,但是需要O(n)时间来进行一次查询.而树状数组的修改和查询均可在O(log(n))的时间内完成.树状数组只能完成区间的修改和查询。如果我们有以下问题呢?问题:一个由数字构成的大矩阵,能进行两种操作对矩阵里的某个数加上一个整数(可正...原创 2020-03-08 16:42:45 · 406 阅读 · 0 评论 -
树状数组详细讲解,不会算法也能看懂哦
有一天,小明给了我三个问题(其实是我自己出的啦~)(1)有一个机器,支持两种操作,在区间[1,10000]上进行。操作A:把位置x的值+k操作B:询问区间[l,r]所有数字之和区间的初始值全部为0现在你要充当这个机器,操作A和操作B会被穿插着安排给你,要求对于所有操作B,给出正确的答案。怎样做才能最节省精力?(2)有一个机器,支持两种操作,在区间[1,10000]上进行。操作A:...转载 2020-03-08 15:13:54 · 199 阅读 · 0 评论 -
Poj 1990 MooFest:线段树优化,区间查询
题目描述思路拿到题感觉好像不是很难,暴力枚举一气呵成,提交之后心里就虚了,nnn也不算很小,O(n2)O(n^2)O(n2)感染过不了,不过有了暴力枚举的思路,接下来就要考虑如何对枚举进行优化了。 sort(c, c + n, cmp); for (ll i = 0; i < n; i++) { for (ll j = i + 1; j < n; j++) { re...原创 2020-03-08 14:51:26 · 211 阅读 · 0 评论 -
树状数组
树状数组可以看作线段树的变形,不同于线段树可以计算区间和,区间最大/最小值,树状数组一般只能完成以下操作:给定一个初始值全为0的数列a1...ana_1...a_na1...an给定iii,计算a1+a2+...+aia_1+a_2+...+a_ia1+a2+...+ai,即前缀和给定iii和xxx,执行ai+=xa_i+=xai+=x。基于线段树的实现如果使用线段树执行...原创 2020-02-29 14:12:28 · 1177 阅读 · 0 评论 -
线段树小计+注意事项
考虑一个简单的问题给定一个数组a[0...n−1]a[0 . . . n-1]a[0...n−1],我们要对数组执行这样的操作:(1)计算从下标lll到rrr的元素的最小值,其中 0<=l<=r<=n−10 <= l <= r <= n-10<=l<=r<=n−1(2)修改数组指定元素的值a[i]=xa[i] = xa[i]=x,其中 0...原创 2020-02-29 10:32:01 · 297 阅读 · 0 评论