树状数组入门基础题 南阳oj 116

来源:互联网 发布:阿里云怎样解析域名 编辑:程序博客网 时间:2024/06/06 18:36

这个题可做线段树的模板题,不过也可做树状数组的模板题,区间求和单点更新大家并不陌生,对于新手可以做做模板题练练手,熟悉熟悉树状数组的思想。

#include<stdio.h>int c[1000010],N;void pus(int i,int num){while(i<=N){c[i]+=num;i+=i&(-i);}}int getsum(int i){int sum=0;while(i>0){sum+=c[i];i-=i&(-i);}return sum;}int main(){int M,i,from,to,num;scanf("%d%d",&N,&M);for(i=1;i<=N;i++){scanf("%d",&num);pus(i,num);}while(M--){char s[10];scanf("%s",s);scanf("%d%d",&from,&to);if(s[0]=='Q')printf("%d\n",getsum(to)-getsum(from-1));elsepus(from,to);}}



原创粉丝点击