一闪一闪亮晶晶,满天都是小星星,牛牛晚上闲来无聊,便躺在床上数星星。

牛牛把星星图看成一个平面,左上角为原点(坐标为(1, 1))。现在有n颗星星,他给每颗星星都标上坐标(xi,yi),表示这颗星星在第x行,第y列。

现在,牛牛想问你m个问题,给你两个点的坐标(a1, b1)(a2,b2),表示一个矩形的左上角的点坐标和右下角的点坐标,请问在这个矩形内有多少颗星星(边界上的点也算是矩形内)。

输入描述:
第一行输入一个数字n(1≤n≤100000),表示星星的颗数。接下来的n行,每行输入两个数x和y(1≤xy≤1000),表示星星的位置。
然后输入一个数字m(1≤m≤100000), 表示牛牛询问问题的个数。接下来m行,每行输入四个数字a1,b1,a2,b2(1≤a1<a2≤1000), (1≤b1<b2≤1000)题目保证两颗星星不会存在于同一个位置。
输出描述:
输出一共包含m行,每行表示与之对应的每个问题的答案。
示例1

输入

4
1 1
2 2
3 3
1 3
4
1 1 2 2
1 1 3 3
2 2 3 3
1 2 2 3

输出

2
4
2
2

蛮力法超过了时间限制只有使用二维前缀来进行矩阵和降维,在O(1)的时间内计算出星星的个数。
#include <iostream>
#include <vector>
using namespace std;int main()
{int n;cin >> n;vector<vector<int>> tbl(1001, vector<int>(1001, 0));vector<vector<int>> sum(tbl);int x, y;for (int i = 0; i < n; ++i){cin >> x >> y;tbl[x][y] = 1;}for (int i = 1; i < 1001; ++i){for (int j = 1; j < 1001; ++j){sum[i][j] = tbl[i][j] + sum[i-1][j] + sum[i][j-1] - sum[i-1][j-1];}}int m;cin >> m;int ax, ay, bx, by;for (int i = 0; i < m; ++i){cin >> ax >> ay >> bx >> by;int count = sum[bx][by] + sum[ax-1][ay-1] - sum[bx][ay-1] - sum[ax-1][by];cout << count << endl;}return 0;
}

转载于:https://www.cnblogs.com/immjc/p/9229772.html

[NowCoder] 牛牛数星星相关推荐

  1. 编程题C语言写牛牛数星星,一步一步写算法(之“数星星”)

    原文: 一步一步写算法(之"数星星") [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 学过编程的朋友都知道,当初为了学习 ...

  2. 【题集】一维前缀和-二维前缀和-数星星问题-反复运行时如何降低时间复杂度

    目录 1前缀和 1.1一维前缀和 1.2二维前缀和 2.题目 2.1输入描述: 2.2输出描述: 2.3输入 2.4输出 3.题目理解 3.1思路 4.程序 4.1运行结果 1前缀和 1.1一维前缀和 ...

  3. 题解西电OJ (Problem 1008 - 数星星)

    题目内容: Description "不要问我太阳有多高  我会告诉你我有多真  不要问我星星有几颗  我会告诉你很多很多" 一天Qinz和wudired在天上数星星,由于星星可以 ...

  4. 一步一步写算法(之“数星星”)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 学过编程的朋友都知道,当初为了学习编程语言中的各种语法结构,我们要试着解决各种各样奇怪的题目. ...

  5. 用ClickHouse在GitHub上数星星

    在最大的基友交友网站GitHub上,来自世界各地的开源开发者们进行着数百万个项目.这里每天都有大量的代码文档.修复和提交BUG之类的事件信息产生. 而GitHub Archive项目,正是搜集了这些G ...

  6. 空间点过程与随机测度(一):从数星星说起

    (2010-04-13 08:15:00) 转载▼ 标签: 测度 分类: 数学 空间点过程与随机测度(一):从数星星说起 Blog的更新刚刚恢复,就得到大家的鼓励,真是让我感动,谢谢大家了. 数星星的 ...

  7. 2021年12月电子学会图形化三级编程题解析含答案:数星星

    [此题目来自2021年12月份电子学会] [青少年软件编程(图形化)等级考试试卷(三级)] 三.编程题(共3题,共30分) 36:数星星 Goblin有个很厉害的魔法:他一挥手就可以点亮夜空中五彩斑斓 ...

  8. 2022年9月青少年软件编程(图形化)等级考试试卷--三级--数星星

    数星星 Goblin有个很厉害的魔法:他一挥手就可以点亮夜空中五彩斑斓的星星灯. 1.准备工作 (1)删除小猫角色,添加"Goblin"角色,并删除Goblin角色的造型" ...

  9. URAL 1028 数星星 题解

    URAL 1028 数星星 题解 URAL 1028 题目 Astronomers often examine star maps where stars are represented by poi ...

最新文章

  1. EEPlat vs saleforce 配置 Knowledge Article 演示样例
  2. jsp设置背景图片并使得图片扩大到整个屏幕
  3. matlabpython建模_一直在用Matlab建模,现在Python很火,用学么?
  4. Javascript异步编程之一异步原理
  5. 和lua的效率对比测试_Unity游戏开发Lua更新运行时代码!
  6. 外设单独编址与统一编址
  7. vue自定义全局和局部指令
  8. java swing 选项卡_java – 如何通过单击按钮在jTabbedPane中切换选项卡?
  9. C++socket编程(四):4.1 跨平台封装XTcp类接口
  10. [链表|多解法] leetcode 19 删除链表的倒数第N个节点
  11. ZZULIOJ1026-1030Python解法
  12. matlab多重比较lsd法,多重比较LSD-t值的计算(附证明方法)
  13. ios客户端学习-手机屏幕尺寸
  14. mac支持fat32格式吗 mac支持什么格式的移动硬盘
  15. ubuntu系统20.04 无线网卡QCA6174 wifi不存在或找不到解决方法 红米笔记本
  16. 容器化运行wine模拟器制作开源代码索引chm文件
  17. web前端面试题以及相关答案解析
  18. 创造单词量测试项目(带有Ajax的爬虫)
  19. 1.1.26 word内容导入PPT
  20. 华为煤矿军团首登央视 | 发布会金句爆棚

热门文章

  1. 抢攻5G网络功能虚拟化,英特尔推专用FPGA加速卡
  2. vue router返回上一页
  3. 2018秋寒假作业5—PTA编程总结2
  4. 基于VUE的前端crypto-js aes加密与解密
  5. SimpleDateFormat 格式图
  6. Docker与OpenStack集成实战
  7. 记录层序遍历中每层右侧第一个数字 Binary Tree Right Side View
  8. _exit()函数与exit()函数的区别
  9. 逆天Kali带你游遍大江南北~安全之前人铺路!
  10. Eclipse Juno在ubuntud的安装(SVN)