题目

两个操作:

1. Add x y value: Add value to the element Axy. (Subscripts starts from 0

2. Sum x1 y1 x2 y2: Return the sum of every element Axy for x1 ≤ x ≤ x2, y1 ≤ y ≤ y2.

注意取模,因为value可能为负值

ans%=Mod;
       if(ans<0) ans+=Mod;

#include <iostream>
#include <cstdio>using namespace std;
const int Max = 1010;
const int Mod = 1e9+7;
typedef long long LL;
int n;
int c[1010][1010];int lowbit(int x)
{return x&(-x);
}
void update(int x,int y,int val)
{for(int i=x;i<=Max;i+=lowbit(i)){for(int j=y;j<=Max;j+=lowbit(j)){c[i][j]+=val;}}
}
LL sum(int x,int y)
{LL res = 0;for(int i=x;i>0;i-=lowbit(i))for(int j=y;j>0;j-=lowbit(j))res += c[i][j];return res;
}
int main()
{int op,x,y,X,Y,val;string str;scanf("%d%d",&n,&op);while(op--){cin>>str;if(str[0]=='A'){scanf("%d%d%d",&x,&y,&val);x++,y++;update(x,y,val);}else{//sumscanf("%d%d%d%d",&x,&y,&X,&Y);x++,y++,X++,Y++;LL ans =sum(X,Y)+sum(x-1,y-1)-sum(X,y-1)-sum(x-1,Y);ans%=Mod;if(ans<0) ans+=Mod;printf("%d\n",ans);}}return 0;
}

转载于:https://www.cnblogs.com/qie-wei/p/10160175.html

hihocode 1336 Matrix Sum 【二维树状数组】相关推荐

  1. Hihocoer 1336 - Matrix Sum 二维树状数组

    题意 给我们个n*n的矩阵 有m个操作让我们 操作有两种 Add x y v对(x,y)上的元素加v Sum x1 y1 x2 y2 对(x1,y1)为左上角(x2,y2)为右下角的矩阵求和并mod ...

  2. POJ2155 - Matrix(二维树状数组)

    POJ2155 - Matrix 文章目录 题目 题解: 代码 题目 给你一个二维矩阵,初始化为0,然后可以进行两次操作: C:x,y,x1,y2 对该小矩阵内的数进行取反 Q:查询某个点是0还是1 ...

  3. Matrix(二维树状数组)入门第一题

    题目链接:http://poj.org/problem?id=2155 Matrix Time Limit: 3000MS   Memory Limit: 65536K Total Submissio ...

  4. szu 寒训第二天 树状数组 二维树状数组详解,以及树状数组扩展应用【求逆序对,以及动态第k小数】

    树状数组(Binary Index Tree) 树状数组可以解决可以转化为前缀和问题的问题 这是一类用以解决动态前缀和的问题 (有点像线段树简版) 1.对于 a1 + a2 + a3 + - + an ...

  5. 【二维树状数组】See you~

    https://www.bnuoj.com/v3/contest_show.php?cid=9148#problem/F [题意] 给定一个矩阵,每个格子的初始值为1.现在可以对矩阵有四种操作: A ...

  6. POJ_1195 Mobile phones 【二维树状数组】

    题目链接:http://poj.org/problem?id=1195 纯纯的二维树状数组,不解释,仅仅须要注意一点,由于题目中的数组从0開始计算,所以维护的时候须要加1.由于树状数组的下标是不能为1 ...

  7. HDU-4456 Crowd 二维树状数组+坐标转换

    题意:给定一个N*N的网格,现在M组操作,一种操作时改变网格上的某个单点的权值,另外一种操作是求到一点曼哈顿距离为小于等于k的所有的权值和,初始化网格所有点的权值为0. 解法:这题如果没有那些特定的条 ...

  8. hdu 1892二维树状数组

    这题我知道是用树状数组,可是好久没打树状数组了,就想用普通方法水过去~~结果--结果--水了好多方法都水不过,出题人真狠呐--我的水方法是对于每一次查询,初始化ans=(x2-x1+1)*(y2-y1 ...

  9. poj 1195(二维树状数组)

    解题思路:这是一道很裸的二维树状数组 AC: #include<stdio.h> #include<string.h> #define N 1100 int c[N][N],n ...

  10. zcmu1157: 新年彩灯Ⅱ(二维树状数组)

    1157: 新年彩灯Ⅱ Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 56  Solved: 17 [Submit][Status][Web Boar ...

最新文章

  1. 存储方式与介质对性能的影响
  2. python入门到精通需要学多久-史上最详细python学习路线-从入门到精通,只需5个月时间...
  3. Linux字符模式下的“远程桌面共享”及屏幕录制
  4. LeetCode-二叉树-94. 二叉树的中序遍历
  5. c++ DirectShow播放任意格式的视频
  6. Oracle connet by prior 关键字的简单介绍和用法
  7. 几何梯度分析神经网络中不可信预测性
  8. SpringMvc @RequestParam、 @RequestBody、@RequestPart 的区别
  9. 物联网为电信运营商带来众多商业机会
  10. snmp服务 2003 镜像_美国掌握全球70%根服务器,一旦对中国关闭,我们将无法上网?...
  11. OBJECTPROPERTY OBJECT_ID TEXTPTR【转载】
  12. 经典排序算法(十三)--奇偶排序Odd-even Sort
  13. MATLAB 高等数学中的应用
  14. 计算机专业英语 背单词,几个背英语单词的app,好用的,我亲自用过
  15. 横向导航条页面居中的方法
  16. 中介者模式:还记得你到单位入职的第一天吗?你有没有遇到文中‘王二’的事呢?
  17. 【云原生之Docker实战】使用Docker部署siyuan个人笔记系统
  18. RTL8188CUS驱动程序编译步骤
  19. 【行为分析】(二)前端埋点实现及原理分析
  20. 前端学习——CSS布局

热门文章

  1. 操作系统复习笔记(一)
  2. 如何在 macOS Monterey 中使用空间音频?
  3. 静态反编译工具IDA Pro 7 for Mac
  4. DaVinci Resolve Studio 17.4.1 Mac(达芬奇调色软件)
  5. 如何在苹果MacBook Pro上打开和使用Touch Bar Zoom?
  6. Sublime Text 3 如何配置Python环境及安装插件?
  7. 安装floodlight遇到的问题和解决
  8. Who am I:最烧脑的社会工程学电影
  9. 搭建Typescript+React项目模板(5) --- 团队规范
  10. jsjquery避免报错的方法