10月5日备战Noip2018模拟赛7(B组)

T2珍珠数

题目描述

给定Ñ个整数,求值在某个范围内的数的个数。

输入格式

第一行为正整数ñ。

第二行有Ñ个整数(0 <=数值<= 231-1)。

第三行为正整数米,表示总询问次数。

以下m行,每行两个整数Ai,Bi(1 <= Ai,Bi <= 2 ^ 31 - 1),表示询问值在[Ai,Bi]内的数个数(如果Ai> Bi则交换Ai ,双)。

输出格式

输出米行,对于每次询问输出一行,表示值在[艾,铋]范围内的数的个数。

输入样例

7
8 2 3 5 6 7 7
6
1 5
8 6
1 10
5 5
4 4
7 8

输出样例

3
4
7
1
0
3

数据范围

对于25%的数据,有M,N <= 1000。

对于100%的数据,有M,N <= 10万


思路

排序+二进制搜索

不过要注意有特判

二分后l不一定小于r

代码

#include <iostream>
#include <cstdio>
#include <algorithm>using namespace std;const int N = 100005;int a[N];int LowerBound (int left, int right, int x)            //寻找第一个大于等于x的数
{int mid;while (left < right){mid = (right - left) / 2 + left;if (a[mid] >= x) right = mid;else left = mid + 1;}return left;
}int UpperBound (int left, int right, int x)            //寻找第一个大于x的数
{int mid;while (left < right){mid = (right - left) / 2 + left;if (a[mid] > x) right = mid;else left = mid + 1;}return left;
}int main ()
{//freopen ("pearl.in", "r", stdin);//freopen ("pearl.out", "w", stdout);int n, m, l, r, ans;scanf ("%d", & n);for (int i = 1; i <= n; i ++){scanf ("%d", & a[i]);}sort (a + 1, a + 1 + n);            //升序排列,方便二分scanf ("%d", & m);for (int i = 1; i <= m; i ++){scanf ("%d %d", & l, & r);if (l > r) swap (l, r);if (r < a[1] || l > a[n]) ans = 0;            //所选的值不在给出的n个数内else {if (l <= a[1]) l = 1;else l = LowerBound (1, n, l);if (r >= a[n]) r = n + 1;else r = UpperBound (1, n, r);r -= 1;if (l > r) ans = 0;            //特判l会不会大于relse ans = r - l + 1;}printf ("%d\n", ans);}//fclose (stdin);//fclose (stdout);return 0;
}

备战Noip2018模拟赛7(B组)T2 Pearl 数数相关推荐

  1. 备战Noip2018模拟赛20 (A组) T1 Cz 礼物

    10月24日备战Noip2018模拟赛20(A组) T1 Cz礼物 题目描述 有Ñ种物品,第I种物品的价格为六,每天最多购买XI个. 有米天,第我天c♂x有无线的钱,他会不停购买能买得起的最贵的物品( ...

  2. 备战Noip2018模拟赛3(B组) T2 Dance 开场舞蹈

    10月3日备战Noip2018模拟赛3(B组) T2 Dance 开场舞蹈 题目描述 在全世界人民的期盼下,2008年北京奥林匹克运动会终于隆重召开了! 为了展示中华民族博大精深的优秀传统文化,负责开 ...

  3. 备战Noip2018模拟赛5(B组)T2 Tree 采果子

    10月4日备战Noip2018模拟赛5(B组) T2 Tree采果子 题目描述 LYL大牛今天心情不错,于是走到埃及郊外旅游.他边走边向四周望望,发现周围有许多果树.这些树之间互相到达的时间LYL是知 ...

  4. 备战Noip2018模拟赛3(B组)T1 Apple 韬韬抢苹果

    10月3日备战Noip2018模拟赛3(B组) T1 Apple韬韬抢苹果 题目描述 又到了收获的季节,树上结了许多韬韬,错了,是许多苹果,有很多个小韬韬都来摘苹果.每个韬韬都想要最大的苹果,所以发生 ...

  5. 备战Noip2018模拟赛11(B组)T4 Path 好路线

    10月27日备战Noip2018模拟赛11(B组) T4路径好路线 题目描述 nodgd在旅游.现在,nodgd要从城市的西北角走到东南角去.这个城市的道路并不平坦,nodgd希望找出一条相对比较好走 ...

  6. 备战Noip2018模拟赛7(B组)T1 Voting 兔子选举

    10月5日备战Noip2018模拟赛7(B组) T1 Voting 兔子选举 题目描述 兔子常常感到孤独,所以一组的兔子决定走到一起,并举行选美比赛,以确定它们之间谁拥有最漂亮的耳朵.规则如下: 每只 ...

  7. 备战Noip2018模拟赛10(B组) T1 Max 和最大

    10月20日备战Noip2018模拟赛10 T1 Max和最大 题目描述 CYF的黑题,偏题,怪题,黑科技题,大码农题都做腻了,于是她想做一下签到水题,她希望从有一个长度为ň的整数序列(A1,A2,. ...

  8. 【蓝桥杯Web】大一小白参与蓝桥杯模拟赛二期web组体会

    目录 前言 一.相关比赛介绍 1.ACM国际大学生程序设计竞赛 2.蓝桥杯 3.GPLT团队程序设计天梯赛 4.leetcode周赛和双周赛 5.PAT 二.蓝桥杯 1.应该参加蓝桥杯吗? 2.如何进 ...

  9. 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - D.蛇形填数

    这道题同样还是: 2020年第十一届蓝桥杯 - 省赛 - C/C++研究生组 - D.蛇形填数 2020年第十一届蓝桥杯 - 省赛 - Java研究生组 - D.蛇形填数 Ideas 这题其实严格意义 ...

最新文章

  1. Android布局之相对布局——RelativeLayout
  2. 饿了么超级会员数量暴增,外卖市场“去泡沫化”的先声?
  3. 深度linux安装postgresql_在 Linux 上安装 PostgreSQL
  4. 3_6 CommandMode 命令模式
  5. STL源码剖析 关联式容器
  6. 如何搭建谷歌离线地图服务
  7. Topic 19. 临床预测模型之输出每个患者列线图得分 (nomogramFormula)
  8. laravel-excel 中设置列宽,单元格内容垂直和水平都居中
  9. 虚拟机内存管理之内存分配器
  10. 浅析Gompertz模型
  11. C基础_Python_基本常用语法快速学习
  12. 鼠标滚轮调节音量 (含程序和源程序下载)
  13. Java手写dubbo框架
  14. 用U盘安装XP操作系统
  15. 论WEB2.0网站建设与核心价值解析
  16. 总结matlab2018a安装后遇到matlab license manager error -8
  17. 【微电网优化】基于粒子群优化IEEE经典微电网结构附matlab代码
  18. TensorFlow—Keras常用API
  19. app提示已到期_软件  试用期过后重装仍显示已过期,怎么办?
  20. 如何用python求斐波那契数列_如何使用Python实现斐波那契数列

热门文章

  1. PTA 求幂级数展开的部分和
  2. linux机启动 工具下载,Linux liveusb creator(u盘启动盘制作工具) 2019电脑版v3.12.0
  3. SPI协议及其工作原理详解
  4. spark入门介绍(菜鸟必看)
  5. 记录做碧桂园项目时后端Java踩的坑
  6. 解决三星手机拍照后,图片旋转。
  7. win10打开英雄联盟假死黑屏
  8. C++ ofstream和ifstream详细用法
  9. 查询目前借书但未归还图书的学生名称及未还图书数量
  10. 记录之十进制,二进制,十六进制