树状数组
文章平均质量分 71
ThunderSei
这个作者很懒,什么都没留下…
展开
-
POJ2352 简单树状数组 附加输入挂
这道题本是很简单的一道题目,题意是统计一个平面坐标系中某点左下方有多少个点,做的时候却卡了三个地方。第一个:统计什么?树状数组的作用就是统计[x,y]这个区间的和,至于这个区间里面是什么,就因题而异了。这里数星星,要找到有多少个星星x和y都小于待求的那个点,y是从小到大排的,所以,只需要统计前面到底有多少个x是比现在这个小的。第二个:被统计值的定义域树状数组的大小和被统计值得取原创 2013-11-06 02:11:30 · 580 阅读 · 0 评论 -
线段树和树状数组各过一次POJ2182
也是从后往前统计有几个空格#include#includeint dat[40000];int n;void PushUp(int rt){ dat[rt]=dat[rt*2]+dat[rt*2+1];}void build(int rt,int l,int r){ //printf("rt:%d l:%d r:%d\n",rt,l,r); if(r-l==1原创 2013-11-06 09:18:25 · 622 阅读 · 0 评论 -
CF 362C 冒泡排序 交换哪两个数逆序数减少最多
交换两个数,求使得排列的逆序数最多减少多少,以及有多少个这样的数对数据范围有5000,我的算法是n^2logn因为有n^2个询问,所以最好O(1)的回答,所以需要先预处理一下。怎样快速回答交换两个数之后逆序数的改变呢?这就要快速的算出i和j之间有多少个比num[i]小的数,有多少个比num[j]小的数,比它们大的数一减就OK。设 si为i到j中比i小的数 bi为比i大的数 sj原创 2013-11-21 20:27:27 · 1747 阅读 · 1 评论