
树状数组
huanzhizun
这个作者很懒,什么都没留下…
展开
-
一维树状数组模板
int bit[100001],n;int sum(int a){ int s=0; while(a>=0) { s+=bit[a]; a-=a&(-a); } return s;}void merg(int a,int b){ while(a<=n) { bit[a]+=b;原创 2014-04-29 09:05:23 · 520 阅读 · 0 评论 -
二维数组数组
二维数组数组一般用来求矩形区域面积。#includeint bit[1025][1025],n;int low(int a){ return a&(-a);}int sum(int x,int y){ int s; int p; s=0; while(x>0) { p=y; while(p>0)原创 2014-04-29 09:06:59 · 540 阅读 · 0 评论 -
hdu4973 A simple simulation problem.(多校第十场1003)
可以直接用树状数组求和加二分判断l原创 2014-08-22 18:06:20 · 495 阅读 · 0 评论 -
hdu 5125 magic balls LIS (dp+树状数组优化)
昨天BC的第三题,一开始用线段树写的,先是MLE,全改成short之后一直TLE到比赛结束,后来听别人说树状数组优化能过,后来试了一下果然能够,坑啊(以后LIS用树状数组了,比线段树快的多)至于树状数组求1-n区间最大值和求和差不多思想。dp转移方程是:dp[i][j][0]=max(dp[k][j][0]+1(a[k]dp[i][j][1]=max(dp[k][j-1][0]+1原创 2014-11-30 14:55:12 · 780 阅读 · 0 评论 -
hdu 5196 DZY Loves Inversions(线段树+树状数组+离线+two points)
先离散化数组,定义了两个数组r[i]和r1[i],r[i]表示min{ j( j~i的逆序数对小于等于k)},r1[i]表示min{ j( j~i的逆序数对小于k)},然后离线处理查询,接着从1开始遍历每个位置,假如遍历到i如果r[i]有个超级大坑点就是1个数的逆序数对也为0,所以k=0的时候一定要考虑到这点(wa了一上午)。#include#include#include#原创 2015-03-29 14:28:57 · 439 阅读 · 0 评论 -
HDU 2852 KiKi's K-Number 主席树或树状数组
主席树的简单应用但是貌似主席树被卡了,但用树状数组能过。#include#include#include#includeusing namespace std;const int maxn=100010;int x[maxn],bit[maxn];int low(int p){ return p&(-p);}void merg(int p,int n,int k){ w原创 2015-04-10 11:01:34 · 552 阅读 · 0 评论