文章标题

xiaoxiao2021-02-28  121

题目: AC情况: 思路:树状数组

#include<iostream> #include<string> #include<bits/stdc++.h> using namespace std; int a[1000002]; int d[1000002] = {0}; int N, M; int lowbit(int x) { return x&(-x); } void update(int x,int num) { while (x <= N) { d[x] += num; x += lowbit(x); } } int getSum(int x) { int s=0; while (x > 0) { s += d[x]; x -= lowbit(x); } return s; } int main(){ char str[10]; int pa, pb,i,j; scanf("%d %d", &N, &M); for (i = 1; i <= N; i++) { scanf("%d", &a[i]); for (j = i - lowbit(i) + 1; j <= i; j++) { d[i] += a[j]; } } for (i = 0; i < M; i++) { scanf("%s %d %d", str, &pa, &pb); if (str[0] == 'Q') { printf("%d\n",getSum(pb) - getSum(pa-1)); } if (str[0] == 'A') { update(pa, pb); } } return 0; }
转载请注明原文地址: https://www.6miu.com/read-37861.html

最新回复(0)