【51NOD-0】1081 子段求和
2017-06-01 18:28
357 查看
【算法】树状数组(区间和)
【题解】记得开long long
#include<cstdio> #include<cstring> #include<algorithm> #define lowbit(x) (x&(-x)) using namespace std; const int maxn=50010; int n,m; long long a[maxn]; void give(int x,int k) { for(int i=x;i<=n;i+=lowbit(i)) { a[i]+=1ll*k; } } long long ask(int x) { long long ans=0; for(int i=x;i>=1;i-=lowbit(i)) { ans+=a[i]; } return ans; } int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { int x; scanf("%d",&x); give(i,x); } scanf("%d",&m); for(int i=1;i<=m;i++) { int x,y; scanf("%d%d",&x,&y); printf("%lld\n",ask(x+y-1)-ask(x-1)); } return 0; }View Code
相关文章推荐
- 51nod 1081 子段求和(树状数组)
- 51Nod 1081 子段求和(数组/树状数组)
- 51nod 1081 子段求和
- 51nod-1081[前缀和]子段求和
- 51Nod 1081 子段求和
- 51Nod - 1081 子段求和 前缀和算法
- 【51Nod】1081 子段求和
- 51Nod-1081-子段求和
- 51nod 1081 子段求和
- 51nod 1081 子段求和
- 51nod:1081 子段求和(树状数组)
- 51Nod-1081-子段求和
- 51nod_1081 子段求和
- 51Nod-1081 子段求和【前缀和】
- 51Nod 1081 子段求和
- 51NOD 1081 子段求和
- 51Nod-1081 子段求和
- 51nod 1081 子段求和
- 51nod 1081子串求和
- HDU 1081 To The Max【DP】【最大子段矩阵求和】