每日一题:区间和的个数

题目

给定一个整数数组 aa,返回区间和在 [lower,upper][lower,upper] 之间的个数,包含 lowerlowerupperupper
区间和 S(i,j)S(i,j) 表示在 aa 中,位置从 iijj 的元素之和,包含 iijj (ij)(ij)

Solution

阅读更多

树状数组经典题

一个简单的整数问题

题目

第一类指令形如 “C-l-r-d”,表示把数列中第 lrlr 个数都加 dd

第二类指令形如 “Q-X”,表示询问数列中第 xx 个数的值。

阅读更多

每日一题:Contest (树状数组)

题意

nn 支队伍一共参加了三场比赛。
一支队伍 xx 认为自己比另一支队伍 yy 强当且仅当 xx 在至少一场比赛中比 yy 的排名高。
求有多少组 (x,y)(x,y),使得 xx 自己觉得比 yy 强,yy 自己也觉得比 xx 强,(x,y)(x,y), (y,x)(y,x)算一组。

solution

阅读更多

每日一题:Different Integers(树状数组/莫队)

题意

给定长度为 nn 的数组,qq 次询问 [1,l]+[r,n][1,l]+[r,n] 组成的新数组中不相同的元素个数。(1<=n,q<=1e5)(1<=n,q<=1e5)

solution1

一眼莫队题,主要是要想怎么样把它变成一个连续的区间。其实只要把整个数组再复制一遍接上就可以了,则原来查询的 rr 变为 llll 变为 l+nl+n,区间连续。

阅读更多

每日一题:换个角度思考(树状数组)

题意

给定一个长度为 (1<=n<=1e5)(1<=n<=1e5) 的数组,(1<=q<=1e5)(1<=q<=1e5) 次询问查询区间 [l,r][l,r]<=k<=k 的元素个数。

solution

考虑树状数组。我们在查询区间 <=k<=k 的个数时,为了更好计数,这个区间应该不包含 >k>k 的元素才行。因此我们不妨离线,将询问的 kk 从小到大排序,将数组也从小到大排序,这样从小到大处理询问,每次处理时只将 <=k<=k 的数挂到树的对应下标上(因为询问的 kk 是从小到大的,因此之前树上的数一定比当前询问的 kk 要小),维护答案为 query(r)query(l1)query(r)query(l1)

阅读更多
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×