与以往不同的是,这个树状数组是二维的,仅此而已

#include <iostream>
#include <cstdio>
#include <cstring>
#include <map>
#include <algorithm>
using namespace std;
int n,c[][];
int lowbit(int k)
{
return k&(-k);
}
void add(int x,int y,int num)
{
for(int i = x; i <= n; i += lowbit(i))
for(int j = y; j <= n; j += lowbit(j))
c[i][j] += num; }
int cal(int x,int y)
{
int sum = ;
for(int i = x; i >= ; i -= lowbit(i))
for(int j = y; j >= ; j -= lowbit(j))
sum += c[i][j];
return sum;
}
int main()
{
int x;
scanf("%d",&x);
while(x--)
{
int t;
memset(c,,sizeof(c));
scanf("%d%d",&n,&t);
char op;
while(t--)
{
cin>>op;
if(op == 'C')
{
int x1,y1,x2,y2;
scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
x1++,x2++,y1++,y2++;
add(x2,y2,);
add(x1-,y1-,);
add(x1-,y2,);
add(x2,y1-,);
}
else
{
int x,y;
scanf("%d%d",&x,&y);
//++x,++y
int ans = cal(x,y);// - cal(x-1,y-1) - cal(x-1,y) - cal(x,y-1);
ans %= ;
printf("%d\n",ans);
}
}
puts("");
}
return ;
}

最新文章

  1. [转]Android App整体架构设计的思考
  2. 关于ios导航控制器的知识总结
  3. phaser源码解析(一) Phaser.Utils类下shuffle方法
  4. Sublime_text3怎么运行php代码
  5. 通过Linux系统Cron执行OwnCloud计划任务
  6. Java 获取url参数
  7. FreeType in OpenCASCADE
  8. 学习MySQL(上)
  9. Jerry的CDS view自学系列
  10. Axure中继器的应用场景和结构组成
  11. ftp 发布配置
  12. 【算法】LeetCode算法题-Roman To Integer
  13. OpenCV + python 实现人脸检测(基于照片和视频进行检测)
  14. 在 Tomcat 中自定义 404 页面(简单配置)
  15. Win10系列:JavaScript页内导航
  16. Delphi中For In 语法应用实例
  17. C++ 编程错误记录
  18. 一个lucene源码分析的博客
  19. 10.Regular Expression Matching (String; Back-Track,DP)
  20. servlet中如何发送ajax请求并动态拼接数据到html中

热门文章

  1. WIN7 64位 IE10打开WEB管理提示证书不安全
  2. Windows常用的监视数据指标
  3. Chapter 1 First Sight——25
  4. 关于getchar()的知识
  5. C#在Json反序列化中处理键的特殊字符
  6. MySQL外键的作用和创建
  7. Bookmark
  8. lepus bug
  9. 一篇非常适合git入门的文章
  10. WinForm 子窗体在父窗体范围内移动,不能出父窗体 摘自于网络