题意:二维的树状数组
注意的有三个地方,
输入进去的坐标都加1,防止lowbit(0) + 0造成死循环
还有就是询问矩形面积的时候,输入进去的x1,x2,y1,y2,可能不是正对角线,要转化成正对角线

初始化的时候,是每个点的值为1

 #include<iostream>
#include<cstdio>
#include<cstring>
#include <cmath>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<algorithm>
using namespace std; typedef long long LL;
const int INF = (<<)-;
const int mod=;
const int maxn=; int a[][],c[][]; int lowbit(int x){ return x & (-x);} int sum(int x,int y){
int ret=;
for(int i=x;i>;i-=lowbit(i))
for(int j=y;j>;j-=lowbit(j))
ret+=c[i][j]; return ret;
} void add(int x,int y,int d){
for(int i=x;i<;i+=lowbit(i))
for(int j=y;j<;j+=lowbit(j))
c[i][j]+=d;
} void init(){
memset(c,,sizeof(c));
for(int i=;i<;i++){
for(int j=;j<;j++){
add(i,j,);
a[i][j] = ;
}
}
} int main(){
int T;
int kase = ;
scanf("%d",&T);
while(T--){
printf("Case %d:\n",++kase);
init();
int m;
scanf("%d%*c",&m);
while(m--){
char cmd;
scanf("%c",&cmd);
if(cmd == 'S') {
int x,xx,y,yy,x1,x2,y1,y2;
scanf("%d%d%d%d%*c",&x,&y,&xx,&yy);
x++;y++;xx++;yy++;
x1 = min(x,xx);x2 = max(x,xx);
y1 = min(y,yy); y2 = max(y,yy); int ans=;
ans += sum(x1-,y1-);
ans -= sum(x1-,y2);
ans -= sum(x2,y1-);
ans += sum(x2,y2);
printf("%d\n",ans);
} if(cmd == 'A'){
int x1,y1,n1;
scanf("%d%d%d%*c",&x1,&y1,&n1);
x1++;y1++;
a[x1][y1]+=n1;
add(x1,y1,n1);
}
if(cmd == 'D'){
int x1,y1,n1;
scanf("%d%d%d%*c",&x1,&y1,&n1);
x1++;y1++;
n1 = min(n1,a[x1][y1]);
a[x1][y1]-=n1;
add(x1,y1,-n1);
}
if(cmd == 'M'){
int x1,y1,x2,y2,n1;
scanf("%d%d%d%d%d%*c",&x1,&y1,&x2,&y2,&n1);
x1++;y1++;x2++;y2++;
n1=min(n1,a[x1][y1]);
a[x1][y1]-=n1;a[x2][y2]+=n1;
add(x1,y1,-n1);
add(x2,y2,n1);
}
}
}
return ;
}

HDU 1892 See you~ 【 二维树状数组 】的更多相关文章

  1. HDU 1892(书架统计 二维树状数组)

    题意是在二维平面上在一些位置上进行数据的增删改查操作,使用树状数组(了解树状数组点这里) 原来的树状数组在求区间和时是 sum( x, y ) = getsum( y ) - getsum( x - ...

  2. HDU 1892 See you~ (二维树状数组)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1892 See you~ Problem Description Now I am leaving h ...

  3. 【 HDU - 4456 】Crowd (二维树状数组、cdq分治)

    BUPT2017 wintertraining(15) #5A HDU 4456 题意 给你一个n行n列的格子,一开始每个格子值都是0.有M个操作,p=1为第一种操作,给格子(x,y)增加z.p=2为 ...

  4. hdu 2642 Stars 【二维树状数组】

    题目 题目大意:Yifenfei是一个浪漫的人,他喜欢数天上的星星.为了使问题变得更容易,我们假设天空是一个二维平面,上面的星星有时会亮,有时会发暗.最开始,没有明亮的星星在天空中,然后将给出一些信息 ...

  5. hdu 5517 Triple(二维树状数组)

    Triple Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

  6. HDU 5517---Triple(二维树状数组)

    题目链接 Problem Description Given the finite multi-set A of n pairs of integers, an another finite mult ...

  7. HDU 5517 【二维树状数组///三维偏序问题】

    题目链接:[http://acm.split.hdu.edu.cn/showproblem.php?pid=5517] 题意:定义multi_set A<a , d>,B<c , d ...

  8. HDU 5465 Clarke and puzzle Nim游戏+二维树状数组

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5465 Clarke and puzzle  Accepts: 42  Submissions: 26 ...

  9. hdu 2642 二维树状数组 单点更新区间查询 模板水题

    Stars Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/65536 K (Java/Others) Total Subm ...

  10. hdu 2642二维树状数组 单点更新区间查询 模板题

    二维树状数组 单点更新区间查询 模板 从零开始借鉴http://www.2cto.com/kf/201307/227488.html #include<stdio.h> #include& ...

随机推荐

  1. WebApi在MVC 4中一个Controll多个post方法报错处理

    http://blog.csdn.net/lqh4188/article/details/53542400(原创)

  2. React实现单例组件

    问题背景 在工作中遇到了这样一个场景,写了个通用的弹窗组件,却在同一个页面中多次使用了该组件.当点击打开弹窗时,可想而知,一次性打开了多个弹窗,而业务需求只需要打开一个. 我个人在解决问题过程中的一些 ...

  3. vue2.x directive - 限制input只能输入正整数

    onlyNum.js import Vue from 'vue' //只对input生效 export default function (el) { var input = el; input.on ...

  4. 达夫设备之js

    最近阅读<高性能JavaScript>时,在书中的“达夫设备“ . 对此,有些感悟,同时有些疑问,希望看到的朋友,能帮忙解释下,在此先提前感谢了. 1. 先说自己的理解吧: ”达夫设备“的 ...

  5. SQL Server中怎样可以从SELECT语句的结果集中删除重复行

    首先要分析出现重复记录的原因,是不是有一些where条件没有加上,把该加的条件都加上如果还有结果集重复,考虑以下方法去重: 结果集中去除重复行可以使用函数[distinct]也可以使用分组语句[gro ...

  6. java ScriptEngine 使用 (java运行脚本文件)

    转自:http://www.tuicool.com/articles/imEbQbA Java SE 6最引人注目的新功能之一就是内嵌了脚本支持.在默认情况下,Java SE 6只支持JavaScri ...

  7. 指定的WSDL可能与所选的工具包不兼容

    使用LoadRunner在webservice协议下,import service的时候,报错: can not fetch WSDL,the specified WSDL datathe speci ...

  8. css3新增的属性有哪些

    徐先森讲web CSS3新增的属性有哪些: CSS 用于控制网页的样式和布局. CSS3 是最新的 CSS 标准. CSS3新增了很多的属性,下面一起来分析一下新增的一些属性: 1.CSS3边框: b ...

  9. Windows10 下安装 Mongodb

    一.先登录Mongodb官网https://www.mongodb.com/download-center#community 下载   安装包.32.64位的都行.

  10. java导出html页面

    http://blog.csdn.net/zhyh1986/article/details/8727523#t6 http://blog.csdn.net/zuozuofuwaiwai/article ...