
数据结构--树状数组BIT
Vmorish
这个作者很懒,什么都没留下…
展开
-
POJ - 2352 Stars(树状数组)
点我看题题意:给出n个星星的坐标,将这n个星星分为0~n-1这n个等级,第0等级表示这颗星星的左下角没有其他星星,第一等级表示这颗星星的左下角有一颗星星......以此类推,问每个等级的星星有多少个??分析:本题中已经明确说明y坐标非递减,所以在计算每颗星星左下角有多少个星星的时候,其实只需要记录它的左边有多少课星星就ok了,那么就把这些星星全都看成是在x轴上的星星,然后利用树状数组,对于原创 2017-07-15 21:00:32 · 302 阅读 · 0 评论 -
POJ - 2481 Cows(树状数组)
点我看题题意:给出n只奶牛,每只都有自己喜欢的三叶草对应的区间,在自己左上角的奶牛是比自己强的奶牛,问对于每只奶牛来说,共有多少只比自己强.分析:首先要明确一点,左上角的奶牛一定要比右下角的厉害,设左上角的奶牛对应区间为[xi,yi],右下角的为[xj,yj],那么xi=yj,并且yi-xi>yj-xj,这是因为经过一趟排序之后得到的.知道这些之后,就可以利用树状数组来解决问题了,Sum函原创 2017-07-16 09:23:39 · 334 阅读 · 0 评论 -
HDU - 3874 Necklace(树状数组+离线操作)
点我看题题意:给你一个长度为n的序列,m次询问,问从l到r不重复数值的和为多少.分析:用树状数组求和,离线操作去重.先说一下离线操作吧(今天才看的离线,不喜勿喷...),离线操作就是在已知所有输入的情况下,先求出每次的结果,再一次性进行输出.这个题离线操作的方法就是先把每个数第一次出现的位置记录下来,然后把要查询的区间按照从r由小到大排序,排好序之后,在上一个查询区间的右端点到本次查询的右原创 2017-07-17 11:24:32 · 409 阅读 · 0 评论 -
POJ - 2299 Ultra-QuickSort(树状数组)
点我看题题意:给一个长度为n的序列,对其进行排序,排序的方法就是让相邻的两个数两两交换,使得最终的序列为升序.求最少交换次数.分析:首先要思考一个问题,什么样的数才有交换的需求,当然是当前的值比它前面的值小的时候才会交换啦,那么,就转化为了求第i个数前面的i-1个数中比i小的数字个数之和,也就等同于求逆序数的个数.参考代码:#include#include#include#i原创 2017-07-17 14:58:08 · 261 阅读 · 0 评论 -
HDU - 6133 Army Formations(启发式合并+树状数组)
HDU - 6133 Army Formations(启发式合并+树状数组)多校2017第八场Problem Description> Stormtroopers were the assault/policing troops of the Galactic Empire. Dissenting citizens referred to them as bucketheads, a derogatory nickname inspired by the bucket-shaped helmets o原创 2017-08-18 16:38:36 · 572 阅读 · 0 评论 -
HDU - 5517 Triple(二维树状数组)
Problem DescriptionGiven the finite multi-set A of n pairs of integers, an another finite multi-set B of m triples of integers, we define the product of A and B as a multi-setC=A∗B={⟨a,c,d⟩∣⟨a,b⟩∈A, ⟨c,d,e⟩∈B and b=e}For each ⟨a,b,c⟩∈C, its BETTER set转载 2017-09-29 15:41:21 · 313 阅读 · 0 评论 -
HDU-1166 敌兵布阵 (树状数组 or 线段树)
DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中央情报局原创 2017-07-02 19:06:07 · 316 阅读 · 0 评论