
树状数组
文章平均质量分 71
ThunderSei
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
POJ2352 简单树状数组 附加输入挂
这道题本是很简单的一道题目,题意是统计一个平面坐标系中某点左下方有多少个点,做的时候却卡了三个地方。 第一个:统计什么? 树状数组的作用就是统计[x,y]这个区间的和,至于这个区间里面是什么,就因题而异了。这里数星星,要找到有多少个星星x和y都小于待求的那个点,y是从小到大排的,所以,只需要统计前面到底有多少个x是比现在这个小的。 第二个:被统计值的定义域 树状数组的大小和被统计值得取原创 2013-11-06 02:11:30 · 606 阅读 · 0 评论 -
线段树和树状数组各过一次POJ2182
也是从后往前统计有几个空格 #include #include int 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 · 667 阅读 · 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 · 1842 阅读 · 1 评论