每日一题 day17 打卡

Analysis

二维树状数组的单点修改和区间查询,和一维的差不多

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define int long long
#define maxn 4096+10
#define INF 2147483647/2-1
using namespace std;
inline int read()
{
int x=;
bool f=;
char c=getchar();
for(; !isdigit(c); c=getchar()) if(c=='-') f=;
for(; isdigit(c); c=getchar()) x=(x<<)+(x<<)+c-'';
if(f) return x;
return -x;
}
inline void write(int x)
{
if(x<){putchar('-');x=-x;}
if(x>)write(x/);
putchar(x%+'');
}
int n,m;
int tree[maxn][maxn];
inline int lowbit(int num)
{
return num&-num;
}
inline void build(int sx,int sy,int num)
{
for(int i=sx;i<=n;i+=lowbit(i))
for(int j=sy;j<=m;j+=lowbit(j))
tree[i][j]+=num;
}
inline int ask(int sx,int sy)
{
int ans=;
for(int i=sx;i>=;i-=lowbit(i))
for(int j=sy;j>=;j-=lowbit(j))
ans+=tree[i][j];
return ans;
}
signed main()
{
n=read();m=read();
int in=;
while(scanf("%d",&in)!=EOF)
{
if(in==)
{
int x=read(),y=read(),k=read();
build(x,y,k);
}
if(in==)
{
int a=read(),b=read(),c=read(),d=read();
write(ask(c,d)-ask(a-,b-));
printf("\n");
}
}
return ;
}

请各位大佬斧正(反正我不认识斧正是什么意思)

最新文章

  1. 美国在研新药_读取单个PDF
  2. html focus事件小学问
  3. Android中BroadcastReceiver广播
  4. Location 对象
  5. ZooKeeper分布式集群安装
  6. Winform下richtextbox截图实现
  7. [转]android开发之字节顺序
  8. 怎样绘制ZBrush中的纹理
  9. Android procrank , showmap 内存分析
  10. APICloud云修复再升级 增加热重启APP功能
  11. new Date()时间对象
  12. POJ 1419
  13. js 倒计时 button不可用
  14. [PR &amp; ML 1] [Introduction] Informal Basic Concepts
  15. Computed Observable的参数
  16. stm32按键识别
  17. C#之读写压缩文件
  18. 移动端line-height问题
  19. 获取Field成员变量类
  20. Java中的异常 Exceptions

热门文章

  1. PAT(B) 1079 延迟的回文数(Java)
  2. centos可选的安装类型
  3. css 基础入门
  4. JAVA 插入注解处理器
  5. 目标进程已退出,但未引发 CoreCLR 启动事件
  6. mysql各版本驱动
  7. angular2-cli 环境搭建
  8. 前端自己导出Excel
  9. 使用jquery和使用框架的区别
  10. PHP 把返回的数据集转换成Tree树