
树状数组
代码随想录
代码随想录网站:https://programmercarl.com
展开
-
poj 2029 Get Many Persimmon Trees 二维树状数组
这道题很经典二维树状数组,模板题!!不解释,找模板打一A,可以看看我上一篇的树状数组里面有模板#includeusing namespace std;#define max 105int c[max][max];int n,w,h,x,y,s,t;int原创 2011-08-21 10:28:20 · 1421 阅读 · 0 评论 -
poj japan 数状数组解决逆序数
这道提树状数组球逆序数 关键在于 问有多少哥焦点 即使焦点在同一个位置#include#include#include#includeusing namespace std;struct node{ int x; int y;}a[1000005];int c[1005];int max1;bool cmp(node a,node b){ return (a.x<b.x)原创 2012-05-21 17:39:07 · 752 阅读 · 0 评论 -
poj 2309 BST 使用树状数组的lowbit
如果领悟了树状数组中的lowbit,这道题就是极其简单的,最底层都是奇数,用lowbit(x)寻找x的父亲,然后x的父亲-1就是最大数至于lowbit是如何计算的嘛,寻找x的父亲,其实就是x+2^x的二进制末尾0的个数。#include#includeusing namespace std;typedef long long ll; ll lowbit(int x){ re原创 2014-07-23 10:48:59 · 1020 阅读 · 0 评论 -
树状数组的讲解感觉挺好,和我的一维,二维,树状数组的模板,希望对大家有用
树状数组树状数组问题提出:已知数组a[],元素个数为n,现在更改a中的元素,要求得新的a数组中i到j区间内的和(1思考:对于这个问题,我们可以暴力地来解决,从a[i]一直累加到a[j],最坏的情况下复杂度为O(n),对于m次change&querry,合起来的复杂度为原创 2011-08-21 10:22:17 · 3315 阅读 · 0 评论 -
树状数组总结
又做了几道树状数组的题,决定放一块儿总结一下;恩,总结一下。。(ps:大牛可以直接跳过。。。) 树状数组中用的d【】,每个点都有一定的管辖范围;如d[1]=a[1];d[2]=a[1]+a[2];d[3]=a[3];d[4]=a[1]+a[2]+a[3]+a[4];等等;这样的结构关键是为了,对一个数组内部动态的删除,增加,来高效的求某个点或者某个区间的转载 2014-07-23 19:31:36 · 802 阅读 · 0 评论 -
HDU 1394 Minimum Inversion Number 树状数组
今天温习树状数组,果然忘记了好多,树状数组求逆序数,值得注意这道题所有的数都是0-n-1的,所以在求最小的时候不用每个数顺序在计算一遍,我已开始就是把每个顺序又计算了一遍,果断超时了。第i个数拿到后面去,逆序数会减少a[i]-1,同时会增加n-a[i]#include#includeusing namespace std;int a[5005],tree[5005],n;int low原创 2014-07-23 19:39:47 · 958 阅读 · 0 评论 -
poj 2352 Stars 树状数组
树状数组,果断1A啦,心情舒畅啊,哈哈先按照y轴从小到大排序,然后一次加入并统计每个点得x坐标,这道题数据不严谨啊,在y轴相同得情况下,应该以x轴从大到小排序,可我都没排x轴就过了#include#include#include#includeusing namespace std;int Max;struct node{ int x,y;}a[15005];int原创 2014-07-24 10:14:47 · 900 阅读 · 0 评论