树状数组
键盘上的精灵
这个作者很懒,什么都没留下…
展开
-
HDU 1166 敌兵布阵
DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中央情报局原创 2016-04-25 19:44:39 · 299 阅读 · 0 评论 -
POJ 2299 Ultra-QuickSort(逆序数)
这题就是求逆序数。逆序数定义:在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。如2431中,21,43,41,31是逆序,逆序数是4。直白算法就是2后面比2小的数有1个,4后面比4小的数有2个,3后面比3小的数有1个,1后面比1小的数有0个,逆序数是1+2+1+0=4.用树状数组求逆序数,原创 2016-04-28 11:09:56 · 507 阅读 · 0 评论 -
树状数组
树状数组(Binary Indexed Tree(BIT), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只能查询其中一个元素的值。这种数据结构(算法)并没有C++和Java的库支持,需要自己手动实现。在Competitive Pr原创 2016-04-25 09:20:32 · 315 阅读 · 0 评论