码迷,mamicode.com
首页 > 编程语言 > 详细

树状数组的模板

时间:2018-02-19 10:28:24      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:小朋友   pid   scanf   历届试题   amp   问题:   pre   排队   for   

int BIT[1000], a[1000], n;
void update(int x, int val)
{
      for(; x <= n; x += x&-x)
        BIT[x] += val;
}
int query(int x)
{
     int sum = 0;
     for(; x > 0; x -= x&-x)
        sum += BIT[x];
     return sum;
}

int main()
{
     scanf(“%d”, &n);
     int i;
     for(i = 1; i <= n; i++)
     {
           scanf(“%d”, &a[i]);
           update(i, a[i]);
     }
     printf(“sum of first 10 elements is %d\n”, query(10));
     printf(“sum of all elements in range [2, 7] is %d\n”, query(7) – query(2-1));
     return 0;
}

  待解决类似问题:  历届试题 小朋友排队  http://lx.lanqiao.cn/problem.page?gpid=T123

树状数组的模板

标签:小朋友   pid   scanf   历届试题   amp   问题:   pre   排队   for   

原文地址:https://www.cnblogs.com/passion-sky/p/8453493.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!