博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷P3374【模板】树状数组 1(单点更新+区间求和)
阅读量:4338 次
发布时间:2019-06-07

本文共 1074 字,大约阅读时间需要 3 分钟。

1 #include 
2 #include
3 #include
4 #define mem(a,b) memset(a,b,sizeof(a)); 5 using namespace std; 6 typedef long long ll; 7 const int maxn = 500005; 8 const ll INF = 0x3f3f3f3f; 9 int n,m;10 ll a[maxn];11 ll lowbit(ll t) {
//取出t的最低位112 return t&(-t);13 }14 ll getsum(ll x) {15 ll ans = 0;16 for(int i = x; i > 0; i -= lowbit(i)) {17 ans += a[i];18 }19 return ans;20 }21 void update(ll x,ll v) {22 for(int i = x; i <= n; i+=lowbit(i)) {23 a[i] += v;24 }25 }26 int main()27 {28 29 cin >> n >> m;30 ll c;31 for(int i = 1; i <= n; i++) {32 cin >> c;33 update(i,c);34 }35 int op;36 ll x,y,z;37 for(int i = 1; i <= m; i++) {38 cin >> op;39 if(op == 1) {40 cin >> x >> z;41 update(x,z);42 }43 else {44 cin >> x >> y;45 cout << getsum(y) - getsum(x-1) << endl;46 }47 }48 return 0;49 }

 

转载于:https://www.cnblogs.com/LLLAIH/p/11341319.html

你可能感兴趣的文章
算法导论笔记(四)算法分析常用符号
查看>>
ultraedit激活
查看>>
总结(6)--- python基础知识点小结(细全)
查看>>
亿级曝光品牌视频的幕后设定
查看>>
ARPA
查看>>
JSP开发模式
查看>>
我的Android进阶之旅------&gt;Android嵌入图像InsetDrawable的使用方法
查看>>
Detours信息泄漏漏洞
查看>>
win32使用拖放文件
查看>>
Android 动态显示和隐藏软键盘
查看>>
raid5什么意思?怎样做raid5?raid5 几块硬盘?
查看>>
【转】how can i build fast
查看>>
null?对象?异常?到底应该如何返回错误信息
查看>>
django登录验证码操作
查看>>
(简单)华为Nova青春 WAS-AL00的USB调试模式在哪里开启的流程
查看>>
图论知识,博客
查看>>
[原创]一篇无关技术的小日记(仅作暂存)
查看>>
20145303刘俊谦 Exp7 网络欺诈技术防范
查看>>
原生和jQuery的ajax用法
查看>>
iOS开发播放文本
查看>>