哎,又切了一天的水题。

线段树果然必须自己写出来才能叫真正的会了,之前一直在套模板确实不好。

这个题目是单点更新 之 单点增减,= ̄ω ̄=

 #include <cstdio>

 const int maxn = ( << );

 int n, qL, qR, p, v, sum[maxn];

 void build(int o, int L, int R)
{
if(L == R) { scanf("%d", &sum[o]); return; }
int M = (L + R) / ;
build(o*, L, M);
build(o*+, M+, R);
sum[o] = sum[o*] + sum[o*+];
} void update(int o, int L, int R)
{
if(L == R) { sum[o] += v; return; }
int M = (L + R) / ;
if(p <= M) update(o*, L, M);
else update(o*+, M+, R);
sum[o] = sum[o*] + sum[o*+];
} int query(int o, int L, int R)
{
if(qL <= L && qR >= R) return sum[o]; int ans = ;
int M = (L +R) / ;
if(qL <= M) ans += query(o*, L, M);
if(qR > M) ans += query(o*+, M+, R);
return ans;
} char cmd[]; int main()
{
//freopen("in.txt", "r", stdin); int T; scanf("%d", &T); for(int kase = ; kase <= T; kase++)
{
printf("Case %d:\n", kase); scanf("%d", &n);
build(, , n); while(scanf("%s", cmd) == )
{
if(cmd[] == 'E') break;
if(cmd[] == 'Q')
{
scanf("%d%d", &qL, &qR);
printf("%d\n", query(, , n));
}
else
{
scanf("%d%d", &p, &v);
if(cmd[] == 'S') v = -v;
update(, , n);
}
}
} return ;
}

代码君

最新文章

  1. IOS开发基础知识--碎片14
  2. AD_TLC549采集模拟信号
  3. 获取$(this)子节点对象的方法
  4. Ztree 随笔记
  5. vue-cli + webpack 多页面实例应用
  6. android:descendantFocusability=”blocksDescendants”的用法
  7. IDS IPS WAF之安全剖析
  8. C#入门篇6-9:字符串操作 不值一提的函数【不看也行】
  9. DirectX截图黑屏的解决办法
  10. Directx11学习笔记【十三】 实现一个简单地形
  11. 清理out的浏览器收藏夹发现的
  12. javascript中的栈、队列。
  13. hibernate一级缓存及对象的状态
  14. 11.13 Daily Scrum
  15. Pytorch中的torch.cat()函数
  16. Codeforces Round #319 (Div. 2) D - Invariance of Tree
  17. LOJ.6281.数列分块入门5(分块 区间开方)
  18. 2018 USP Try-outsF - Optimizing Transportation in Portugal
  19. 前端通信:ajax设计方案(七)--- 增加请求错误监控、前端负载均衡以、请求宕机切换以及迭代问题修复
  20. HBase写入性能改造(续)--MemStore、flush、compact参数调优及压缩卡的使用【转】

热门文章

  1. CSS3 transition规范的实际使用经验
  2. Chapter 6面向对象
  3. YAPF:Google开源的Python代码格式化工具
  4. 李洪强经典iOS面试题11
  5. intent传递参数
  6. QScrollArea可以帮助我们实现让一个widget的内容带有滚动条(QWidget里内置QScrollArea,QScrollArea里再内置其它QWidget)
  7. iOS Architecture
  8. 【查找结构3】平衡二叉查找树 [AVL]
  9. 301. Remove Invalid Parentheses
  10. swift:创建表格UITableView