(1)“改点求段”型
树状数组模板题—hdu1166+poj2352 - Delacour_的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/delacour_/article/details/33364033
int lowbit(int a)
{
return a&(-a);
}
void init()...
分类:
其他好文 时间:
2014-08-22 17:56:29
阅读次数:
196
给你一个uint32 a,让你找到另一个uint32 b,使b > a,且b的二进制中1的个数等于a二进制中1的个数。且使b最小。(数据保证可出)1 因为1的个数不变,所以必然大于n+lowbit(n);(lowbit(int n){return n&-n;}//取n的最小一个100000串,也就是...
分类:
其他好文 时间:
2014-08-17 00:59:01
阅读次数:
150
看着题意:[1,i]中等于a[i]的个数要大于[,jn]中等于a[j]的个数 且i
int n;
int aa[1000000 + 55];
int bb[1000000 + 55];
int c[1000000 + 55];
map mp;
ll lowbit(ll x) {
return x&(-x);
}
void add(int i,int val) {
while...
分类:
其他好文 时间:
2014-08-16 21:09:01
阅读次数:
194
题目来源:URAL 1470. UFOs
题意:求三维区间和
思路:
#include
#include
using namespace std;
const int maxn = 130;
int a[maxn][maxn][maxn];
int b[maxn][maxn][maxn];
int n, q;
int lowbit(int x)
{
return x & -x;
}
...
分类:
其他好文 时间:
2014-08-15 16:02:59
阅读次数:
200
http://acm.hdu.edu.cn/showproblem.php?pid=4630
重新认识了树状数组。
首先要记住那个树形的图,然后+或-lowbit(i)是自己根据具体问题设定的,不要死于+或者-,
树状数组的特点:
1、+lowbit(i)可以到达包含结点i的上一层父节点 所以用于值的更改
2、-lowbit(i)可以到达不包含i所代表区间的上一层父节点 所以用于...
分类:
其他好文 时间:
2014-08-15 12:51:08
阅读次数:
233
先贴自己类比二维树状数组写的三维树状数组模板: 开始的时候循环体内j=y,k=z,没写,以为自己思路错了,,,hehe.....
更高维的树状数组以此类比
const int MAXN = 100+10;
int c[MAXN][MAXN][MAXN];int X,Y,Z;
int N;
inline int lowbit(int x){return x&(-x);}
void up...
分类:
其他好文 时间:
2014-08-13 19:00:37
阅读次数:
189
http://poj.org/problem?id=2299
最初做离散化的时候没太确定但是写完发现对的---因为后缀数组学的时候,,这种思维习惯了吧
1、初始化as[i]=i;对as数组按照num[]的大小间接排序
2、bs[as[i]]=i;现在bs数组就是num[]数组的离散化后的结果
3、注意,树状数组中lowbit(i) i是不可以为0的,0&(-0)=0,死循环...
...
分类:
其他好文 时间:
2014-08-13 03:36:15
阅读次数:
234
/*
二维的树状数组:
更新一个a元素的时候。如果a[i]更新了,那么以下几项都需要更新:
NO.1:c[n1],c[n2],c[n3],....,c[nm];
其中n1 = i,n(i+1) = ni+lowbit(ni);
nm+lowbit(nm)的值应该大于a的元素个数N。
NO.2:sum(k)=c[n1]+c[n2]+...+c[nm];
其中nm=k,n(i-1)=ni-lowbit...
分类:
其他好文 时间:
2014-08-10 10:28:30
阅读次数:
384
#include#includeint l[100001];int n;int lowbit(int x){ return (x)&(-x);}void update(int pos,int x){ while(pos0) { sum+=l[x]; x-=lowbit(x); } return su...
分类:
其他好文 时间:
2014-08-09 13:19:17
阅读次数:
242
树状数组求逆序数
样例输入:
3
1 2 3
4
4 3 2 1
样例输出:
0
6
#include
#include
#include
#include
using namespace std;
int a[10005];
int n;
int lowbit(int t)
{
return t&(-t);
}
void Update(int...
分类:
其他好文 时间:
2014-08-08 18:20:56
阅读次数:
250