备战Noip2018模拟赛7(B组)T2 Pearl 数数
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 数数相关推荐
- 备战Noip2018模拟赛20 (A组) T1 Cz 礼物
10月24日备战Noip2018模拟赛20(A组) T1 Cz礼物 题目描述 有Ñ种物品,第I种物品的价格为六,每天最多购买XI个. 有米天,第我天c♂x有无线的钱,他会不停购买能买得起的最贵的物品( ...
- 备战Noip2018模拟赛3(B组) T2 Dance 开场舞蹈
10月3日备战Noip2018模拟赛3(B组) T2 Dance 开场舞蹈 题目描述 在全世界人民的期盼下,2008年北京奥林匹克运动会终于隆重召开了! 为了展示中华民族博大精深的优秀传统文化,负责开 ...
- 备战Noip2018模拟赛5(B组)T2 Tree 采果子
10月4日备战Noip2018模拟赛5(B组) T2 Tree采果子 题目描述 LYL大牛今天心情不错,于是走到埃及郊外旅游.他边走边向四周望望,发现周围有许多果树.这些树之间互相到达的时间LYL是知 ...
- 备战Noip2018模拟赛3(B组)T1 Apple 韬韬抢苹果
10月3日备战Noip2018模拟赛3(B组) T1 Apple韬韬抢苹果 题目描述 又到了收获的季节,树上结了许多韬韬,错了,是许多苹果,有很多个小韬韬都来摘苹果.每个韬韬都想要最大的苹果,所以发生 ...
- 备战Noip2018模拟赛11(B组)T4 Path 好路线
10月27日备战Noip2018模拟赛11(B组) T4路径好路线 题目描述 nodgd在旅游.现在,nodgd要从城市的西北角走到东南角去.这个城市的道路并不平坦,nodgd希望找出一条相对比较好走 ...
- 备战Noip2018模拟赛7(B组)T1 Voting 兔子选举
10月5日备战Noip2018模拟赛7(B组) T1 Voting 兔子选举 题目描述 兔子常常感到孤独,所以一组的兔子决定走到一起,并举行选美比赛,以确定它们之间谁拥有最漂亮的耳朵.规则如下: 每只 ...
- 备战Noip2018模拟赛10(B组) T1 Max 和最大
10月20日备战Noip2018模拟赛10 T1 Max和最大 题目描述 CYF的黑题,偏题,怪题,黑科技题,大码农题都做腻了,于是她想做一下签到水题,她希望从有一个长度为ň的整数序列(A1,A2,. ...
- 【蓝桥杯Web】大一小白参与蓝桥杯模拟赛二期web组体会
目录 前言 一.相关比赛介绍 1.ACM国际大学生程序设计竞赛 2.蓝桥杯 3.GPLT团队程序设计天梯赛 4.leetcode周赛和双周赛 5.PAT 二.蓝桥杯 1.应该参加蓝桥杯吗? 2.如何进 ...
- 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - D.蛇形填数
这道题同样还是: 2020年第十一届蓝桥杯 - 省赛 - C/C++研究生组 - D.蛇形填数 2020年第十一届蓝桥杯 - 省赛 - Java研究生组 - D.蛇形填数 Ideas 这题其实严格意义 ...
最新文章
- Android布局之相对布局——RelativeLayout
- 饿了么超级会员数量暴增,外卖市场“去泡沫化”的先声?
- 深度linux安装postgresql_在 Linux 上安装 PostgreSQL
- 3_6 CommandMode 命令模式
- STL源码剖析 关联式容器
- 如何搭建谷歌离线地图服务
- Topic 19. 临床预测模型之输出每个患者列线图得分 (nomogramFormula)
- laravel-excel 中设置列宽,单元格内容垂直和水平都居中
- 虚拟机内存管理之内存分配器
- 浅析Gompertz模型
- C基础_Python_基本常用语法快速学习
- 鼠标滚轮调节音量 (含程序和源程序下载)
- Java手写dubbo框架
- 用U盘安装XP操作系统
- 论WEB2.0网站建设与核心价值解析
- 总结matlab2018a安装后遇到matlab license manager error -8
- 【微电网优化】基于粒子群优化IEEE经典微电网结构附matlab代码
- TensorFlow—Keras常用API
- app提示已到期_软件 试用期过后重装仍显示已过期,怎么办?
- 如何用python求斐波那契数列_如何使用Python实现斐波那契数列