1 条题解
-
0
简约树状数组模板
使用了c++11的语法糖Lambda表达式
#include<cstdio> using namespace std; int tree[510000],s,n,m,a1,a2,a3; int main() { auto add=[](int x,int k){while (x<=n)tree[x]+=k,x+=x& -x;}; auto sum=[](int x){int ans=0;while (x!=0)ans+=tree[x],x-=x & -x;return ans;}; scanf("%d%d",&n,&m); for (int i=1; i<=n&&scanf("%d",&s); i++) add(i, s); while (m--&&scanf("%d%d%d",&a1,&a2,&a3))if(a1==1)add(a2,a3);else printf("%d\n",sum(a3)-sum(a2-1)); return 0; }
压行真是太开心了
- 1
信息
- ID
- 7404
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 3
- 标签
- 递交数
- 37
- 已通过
- 19
- 上传者