题目

题目大意:Yifenfei是一个浪漫的人,他喜欢数天上的星星。为了使问题变得更容易,我们假设天空是一个二维平面,上面的星星有时会亮,有时会发暗。最开始,没有明亮的星星在天空中,然后将给出一些信息,“B XY”,其中“B”代表明亮,x代表X坐标和Y代表Y坐标是指在(X,Y)的明星是光明的,而在“D XY”'D'的意思是灰暗的星星在(X , Y).当得到“Q X1 X2 Y1 Y2”的查询,你应该告诉Yifenfei在该地区有多少明亮的星星在X1,X2,Y1,Y2决定的矩形里。

  1. B x y:点(x,y)处的星星变亮

  2. D x y:点(x,y)处的星星变暗

  3. Q x1 x2 y1 y2:查询左下角(x1,y1)和右上角(x2,y2)的矩形

#include <iostream>
#include <cstdio>
using namespace std; const int Max = 1010;
int c[Max][Max];
int vis[Max][Max]; int lowbit(int x)
{
return x&(-x);
}
void update(int x,int y,int val)
{
int t;
while(x<=Max){
t = y;
while(t<=Max){
c[x][t]+=val;
t+=lowbit(t);
}
x+=lowbit(x);
}
} int sum(int x,int y)
{
int res=0;
while(x>0){
int t = y;
while(t>0){
res+=c[x][t];
t-=lowbit(t);
}
x-=lowbit(x);
}
return res;
}
int main()
{
int M,x,y;
string str;
scanf("%d",&M);
while(M--)
{
cin>>str;
if(str[0]=='B'){
scanf("%d%d",&x,&y);
x++,y++;
if(!vis[x][y]){
vis[x][y] = 1;
update(x,y,1);
}
}else if(str[0]=='Q'){
int x1,y1,x2,y2;
scanf("%d%d%d%d",&x1,&x2,&y1,&y2);
x1++,x2++,y1++,y2++;
int X,Y;
X = max(x1,x2);
x = min(x1,x2);
Y = max(y1,y2);
y = min(y1,y2);
int ans = sum(X,Y)+sum(x-1,y-1)-sum(X,y-1)-sum(x-1,Y);
printf("%d\n",ans);
}else{//D
scanf("%d%d",&x,&y);
x++,y++;
if(vis[x][y]){
vis[x][y]=0;
update(x,y,-1);
}
}
}
return 0;
}

hdu 2642 Stars 【二维树状数组】的更多相关文章

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

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

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

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

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

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

  4. HDU 4456(二维树状数组+坐标转换)

    题目链接:Problem - 4456 看别人叙述看的心烦,于是我自己画了一张图. 上图. 上代码 #include <iostream> #include <cstdio> ...

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

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

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

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

  7. Stars(二维树状数组)

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

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

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

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

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

  10. HDU1559 最大子矩阵 (二维树状数组)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1559 最大子矩阵 Time Limit: 30000/10000 MS (Java/Others)  ...

随机推荐

  1. Oracle的SQL语句中如何处理‘&’符号

    ‘&’符号在SQL中有特殊含义,所以在SQL中想要写入&,需要特殊处理. 如下SQL语句就不能正确运行: SQL> select 'a&b' from dual; 处理方 ...

  2. hdu 2289 要二分的杯子

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2289 大意是 一个Cup,圆台形,给你它的顶部圆的半径,底部圆的半径,杯子的高度,和此时里面装的水的体 ...

  3. mysql if--then--else --endif 问题

    if 0 =resultValue then set @m = 2; else set @m =1; end if if 0 =resultValue then set @m = 2; else se ...

  4. mysql 8小时timeout问题

    MySQL> show variables like '%timeout%'; +--------------------------+-------+ | Variable_name      ...

  5. Luogu 1764 翻转游戏 - 枚举 + 搜索

    题目描述 kkke在一个n*n的棋盘上进行一个翻转游戏.棋盘的每个格子上都放有一个棋子,每个棋子有2个面,一面是黑色的,另一面是白色的.初始的时候,棋盘上的棋子有的黑色向上,有的白色向上.现在kkke ...

  6. 设计服务类网站原型模板分享——Fortyseven

    Fortyseven是一个设计服务网站,设计理念是帮助企业设计出赚钱的品牌和网站.该网站图文排版配色都很不错,很有欧美复古风,多采用大图结合文案排版. 本原型由国产Mockplus(原型工具)和iDo ...

  7. json数据映射填充到html元素显示

    映射算法做了改进,支持name重复映射 <!DOCTYPE html> <html> <head> <meta charset="UTF-8&quo ...

  8. mybatis 的查询某个字段的特定位数(模糊查询)

    获取特定的几位:1.取url字段后三位字符 select SUBSTRING(url, -3) from link; 2.取url字段前三位字符 select SUBSTRING(url, 3) fr ...

  9. [ASP.NET]使用Oracle.ManagedDataAccess的OracleParameter参数化和OracleDataAdapter模糊查询

    今天写个查询员工的信息的demo遇到了2个问题 问题1.使用Oracle.ManagedDataAccess的OracleParameter参数化 OracleParameter 的使用(参数名要以: ...

  10. 20155312 2006-2007-2 《Java程序设计》第三周学习总结

    20155312 2006-2007-2 <Java程序设计>第三周学习总结 课堂内容总结 yyp复制上一行代码 5不是false statistics.sh换成.bat就可以在windo ...