题目

Link

就是查询矩形内有多少个点。

分析

二维树状数组维护就好了,。

Code

#include <bits/stdc++.h>

const int maxn = 1000 + 131;
struct Point {
int x, y;
};
int Num[maxn][maxn];
bool Vis[maxn][maxn]; int lowbit(int x) { return x&(-x); }
int Sum(int x, int y) {
int ret = 0;
int xx = x;
while(xx) {
int yy = y;
while(yy)
{
ret += Num[xx][yy];
yy -= lowbit(yy);
}
xx -= lowbit(xx);
}
return ret;
}
void Add(int x,int y, int val) {
int xx = x;
while(xx < maxn)
{
int yy = y;
while(yy < maxn)
{
Num[xx][yy] += val;
yy += lowbit(yy);
}
xx += lowbit(xx);
}
} int main() {
int T;
scanf("%d",&T);
for(int kase = 1; kase <= T; kase++)
{
printf("Case %d:\n",kase);
memset(Num, 0, sizeof(Num));
memset(Vis, false, sizeof(Vis));
int Q, tmp;
Point a, b;
scanf("%d",&Q);
while(Q--)
{
scanf("%d",&tmp);
if(tmp == 0)
{
scanf("%d%d",&a.x,&a.y);
if(!Vis[a.x][a.y])
Add(a.x+1,a.y+1,1), Vis[a.x][a.y] = true;
}
else {
scanf("%d%d%d%d",&a.x,&a.y,&b.x,&b.y);
int Ans = Sum(b.x+1,b.y+1) - Sum(a.x,b.y+1) - Sum(b.x+1,a.y) + Sum(a.x,a.y);
printf("%d\n",Ans);
}
}
}
return 0;
}

Light OJ 1266 - Points in Rectangle的更多相关文章

  1. 1266 - Points in Rectangle

    1266 - Points in Rectangle    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 3 ...

  2. Light OJ 1114 Easily Readable 字典树

    题目来源:Light OJ 1114 Easily Readable 题意:求一个句子有多少种组成方案 仅仅要满足每一个单词的首尾字符一样 中间顺序能够变化 思路:每一个单词除了首尾 中间的字符排序 ...

  3. Light OJ 1429 Assassin`s Creed (II) BFS+缩点+最小路径覆盖

    题目来源:Light OJ 1429 Assassin`s Creed (II) 题意:最少几个人走全然图 能够反复走 有向图 思路:假设是DAG图而且每一个点不能反复走 那么就是裸的最小路径覆盖 如 ...

  4. Light OJ 1406 Assassin`s Creed 减少国家DP+支撑点甚至通缩+最小路径覆盖

    标题来源:problem=1406">Light OJ 1406 Assassin`s Creed 意甲冠军:向图 派出最少的人经过全部的城市 而且每一个人不能走别人走过的地方 思路: ...

  5. Light OJ 1316 A Wedding Party 最短路+状态压缩DP

    题目来源:Light OJ 1316 1316 - A Wedding Party 题意:和HDU 4284 差点儿相同 有一些商店 从起点到终点在走过尽量多商店的情况下求最短路 思路:首先预处理每两 ...

  6. light oj 1007 Mathematically Hard (欧拉函数)

    题目地址:light oj 1007 第一发欧拉函数. 欧拉函数重要性质: 设a为N的质因数.若(N % a == 0 && (N / a) % a == 0) 则有E(N)=E(N ...

  7. Light OJ 1406 Assassin`s Creed 状态压缩DP+强连通缩点+最小路径覆盖

    题目来源:Light OJ 1406 Assassin`s Creed 题意:有向图 派出最少的人经过全部的城市 而且每一个人不能走别人走过的地方 思路:最少的的人能够走全然图 明显是最小路径覆盖问题 ...

  8. Light OJ 1288 Subsets Forming Perfect Squares 高斯消元求矩阵的秩

    题目来源:Light OJ 1288 Subsets Forming Perfect Squares 题意:给你n个数 选出一些数 他们的乘积是全然平方数 求有多少种方案 思路:每一个数分解因子 每隔 ...

  9. Jan's light oj 01--二分搜索篇

    碰到的一般题型:1.准确值二分查找,或者三分查找(类似二次函数的模型). 2.与计算几何相结合答案精度要求比较高的二分查找,有时与圆有关系时需要用到反三角函数利用 角度解题. 3.不好直接求解的一类计 ...

随机推荐

  1. 【转】Linux之crontab定时任务命令

    1.  crontab命令概念 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使 ...

  2. ES6 Promise 用法讲解

    Promise是一个构造函数,自己身上有all.reject.resolve这几个眼熟的方法,原型上有then.catch等同样很眼熟的方法. 那就new一个 var p = new Promise( ...

  3. setData 和 直接赋值的区别

    wxml: <view> <block wx:for="{{dataArray}}" wx:key="id"> <v-book b ...

  4. Python Face Detect Offline

    python版本 3.7.0  1. 安装 cmake pip install cmake  2.安装 boost pip install boost  3.安装 dlib pip install d ...

  5. C++ 中 double、 long double、long 和 long long

    double 属于浮点类型,具体为双精度浮点类型,通常为 IEEE-754 64 位浮点类型. long double 也属于浮点类型,具体为扩展精度浮点类型,其精度不低于double,具体由编译器和 ...

  6. 《深入理解java虚拟机》学习笔记-----郑雨迪

    一.学习java虚拟机的原因 二.java代码的运行 java -c 编译成.class 文件(java字节码) java字节码(.class文件)无法直接执行,因此,java虚拟机需要将字节码编译成 ...

  7. net core swagger接口

    net swagger接口 引用NuGet包 Install-Package Swashbuckle.AspNetCore //控制台 Microsoft.Extensions.PlatformAbs ...

  8. Guest Editors’ Introduction: Special Issue on Advances in Management of Softwarized Networks

    文章名称:Guest Editors’ Introduction:Special Issue on Advances in Management of Softwarized Networks 发表时 ...

  9. xgboost-Python&R

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  10. 1.6分布式通讯协议-WebService

    RPC 包含的要素(webservice) 协议层:tcp/ip 应用层: http协议 SOAP: http+xml 分布式通信框架-webservice分析 什么是webservice webse ...