题目链接: 点击打开链接

二维树状数组,百度一大堆,我只是存代码的

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<string> using namespace std;
typedef long long int LL;
const int INF=2e9+1e8;
const int MM=1010;
const LL MOD=1e9+7; LL n,m,bitnum[MM][MM]; LL lowbit(LL x)
{
return x&(-x);
}
void add(LL xx,LL yy,LL num)
{
for(int x=xx;x<=n+1;x+=lowbit(x))
{
for(int y=yy;y<=n+1;y+=lowbit(y))
{
bitnum[x][y]+=num;
}
}
}
LL sum(LL l,LL r)
{
LL ans=0;
for(int x=l;x>0;x-=lowbit(x))
{
for(int y=r;y>0;y-=lowbit(y))
{
ans+=(bitnum[x][y])%MOD;
}
}
return ans%MOD;
}
LL getsum(LL x1,LL y1,LL x2,LL y2)
{
LL ans=sum(x2,y2)-sum(x1-1,y2)-sum(x2,y1-1)+sum(x1-1,y1-1);
while(ans<0) ans+=MOD;
return ans;
} int main()
{
memset(bitnum,0,sizeof(bitnum));
cin>>n>>m;
for(int i=0;i<m;i++)
{
char opt[10];
LL x1,y1,x2,y2,val;
cin>>opt;
if(opt[0]=='A')
{
cin>>x1>>y1>>val;
add(x1+1,y1+1,val);
}
else
{
cin>>x1>>y1>>x2>>y2;
cout<<getsum(x1+1,y1+1,x2+1,y2+1)<<endl;
}
}
return 0;
}

最新文章

  1. Python:Pycharm下无法导入安装好的第三方模块?
  2. 静态成员函数(面向对象的static关键字)
  3. 堆(Heap)和二叉堆(Binary heap)
  4. MyEclipse2015对Javascript自动提示的终极支持
  5. ZOJ 3903 Ant(数学,推公示+乘法逆元)
  6. stat~~~访问文件状态的利器
  7. [转] Linux下查看文件和文件夹大小
  8. 转义字符(\)对JavaScript中JSON.parse的影响
  9. 1782: [Usaco2010 Feb]slowdown 慢慢游
  10. java中File类应用:遍历文件夹下所有文件
  11. mysql 5.7.19 安装
  12. POJ-1068 Parencodings---模拟括号的配对
  13. 002.[python学习]python编码规范pep8学习——PEP8第一部分代码布局
  14. python后端从数据库请求数据给到前端的具体实现
  15. 跟着柴毛毛学Spring(3)——简化Bean的配置
  16. bzoj1001狼抓兔子
  17. 【小记】FreeRTOS任务创建后但任务中为空时运行错误
  18. 动态加载jar包(二)
  19. Oracle 跨库查询表数据(不同的数据库间建立连接)
  20. BZOJ 2466 中山市选2009 树 高斯消元+暴力

热门文章

  1. 【spring boot】13.在spring boot下使用多线程
  2. DEV GridControl 常用属性 z
  3. iOS--实时监控网络状态的改变
  4. 手把手教你安装Hbase,一次成功!
  5. Odoo calendar 提醒器
  6. 笔记本POWER部分的应用——(MOS/LDO/BUCK BOOST)
  7. 最简单的基于FFmpeg的移动端样例附件:SDL Android HelloWorld
  8. eclipse的快捷键(常用)
  9. 后端程序员看前端想死(二)进入页面之后js分析
  10. Continuous Integration with Selenium