福建工程学院寒假作业A题

Problem Description

给出一个从递增的正整数序列a0,a1……an-1
对不同的查询输出对应结果

Input

只有一组数据
第一行是一个整数n,代表序列的长度(下标从0开始一直到n-1)
接下来n个整数,代表序列对应位置上的数
再接下来一行是一个整数m代表查询次数
接下来m行
接下来的每行是这5种类型之一
0 x    代表查询数字x出现的最大下标,若不存在x输出-1
1 x    代表查询数字x出现的最小下标,若不存在x输出-1
2 x y  代表查询大于等于x且小于等于y的数字的个数,并保证x<=y
3 x    代表查询比x大且下标最小的数字的大小,若不存在比x大的数字输出-1
4 x    代表查询比x小且下标最大的数字的大小,若不存在比x小的数字输出-1
n,m<10^5
0<=ai,x,y<10^9

Output

输出对应结果,每个结果占一行

SampleInput

10
1 1 1 3 4 5 5 5 5 8
5
0 5
1 5
2 1 5
3 4
4 8

SampleOutput

8
5
9
5
5

该题是二分法的应用。再用if进行选择就行了以下为二分的基本模板

根据题目要求,查询数字x出现的最大下标,则find_upper_bound(q)-1为x出现的最后一个位置

查询代表查询数字x出现的最小下标,则find_upper_bound(q-1)为x出现的第一个位置

查询大于等于x且小于等于y的数字的个数,并保证x<=y,则需要y出现的最后一个位置减去x出现的第一个位置再+1

查询比x大且下标最小的数字的大小,则find_upper_bound(q)为大于x的第一个位置,这题要求的是数字,所以为a[find_upper_bound(q)]

代表查询比x小且下标最大的数字的大小,则find_upper_bound(q-1)-1为小于x的第一个位置,该题也要求是数字。

当find_upper_bound(q)==find_upper_bound(q-1)时 ,x不存在。

以上为该题题解。

				
时间: 2024-10-01 19:22:49

福建工程学院寒假作业A题的相关文章

福建工程学院寒假作业第一周F题

Subsequence TimeLimit:1000MS  MemoryLimit:65536K 64-bit integer IO format:%lld 问题描述: A sequence of N positive integers (10 < N < 100 000), each of them less than or equal 10000, and a positive integer S (S < 100 000 000) are given. Write a progra

16级第四周寒假作业A题

T^T找数字 TimeLimit:1000MS  MemoryLimit:256MB 64-bit integer IO format:%I64d Problem Description 有一天,T^T来到了师大比赛,看上了师大的ACMer小彩,于是他就跑上去想跟人家搭讪,可是呢,这时候,小彩遇到了一个问题,小彩说,你要是帮我解决了这个 问题,我就把我的手机号给你,T^T一听,顿时乐了起来,这不是我的强项嘛,于是就让小彩说了: 给定整数a1,a2,....,an,判断是否可以从中选出若干数(取数

16级第三周寒假作业E题

兵队列训练问题 TimeLimit:1000MS  MemoryLimit:32768KB 64-bit integer IO format:%I64d Problem Description 某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数...,以后从头开始轮流进行一至二报数.一至三报数直到剩下的人数不超

16级第一周寒假作业H题

涨姿势题2 TimeLimit:1000ms  MemoryLimit:128000KB 64-bit integer IO format:%lld Problem Description 涨姿势题就是所谓的优化题,在组队赛中,队伍发现了一题水题,那么应该交给谁去处理?作为处理水题的代码手,应该具备什么样的素养?1,要快,水题拼的就是速度!2,不能卡水题!水题都卡,绝对不是一个代码手的风范!3,不能出错,错一次即罚时20分钟,对于水题来讲是致命的!4,要能看出来一题是水题!没有这条,上面三条都是

16级第三周寒假作业F题

Sliding Window TimeLimit:12000MS  MemoryLimit:65536K 64-bit integer IO format:%lld Problem Description Case Time Limit: 5000MS An array of size n ≤ 106 is given to you. There is a sliding window of size k which is moving from the very left of the arr

16级第二周寒假作业J题

Favorite Donut TimeLimit: 1500/1000 MS (Java/Others)  MemoryLimit: 131072/131072 K (Java/Others) 64-bit integer IO format:%I64d Problem Description 露露爱吃甜食.她最喜欢的食物是环形甜甜圈.每天她从同一个面包店买一个环形甜甜圈.环形甜甜圈由n个部分组成.每个部分具有其自身的糖度,甜度可以由从a到z(从低到高)的字母表示,并且环形甜甜圈可以以一个第i个

16级第一周寒假作业D题

第八集,体能训练 TimeLimit:1000MS  MemoryLimit:128MB 64-bit integer IO format:%I64d Problem Description 小A和小C跋山涉水,终于来到了特工们要聚集的城市,他们俩在附近找了家宾馆住下.这时,距离特工们聚会的时间越来越近了,是时候来一波体能训练,以防遇到危险,跑得太慢了,被抓住了,就GG了- 于是,小A和小C一起来到了宾馆附近的体育馆的环形操场上跑步,起先,他们两个人约定,一开始他们两个人从同一点,反方向跑步,每

16级第二周寒假作业B题

Line belt TimeLimit:1000MS  MemoryLimit:32768KB 64-bit integer IO format:%I64d Problem Description In a two-dimensional plane there are two line belts, there are two segments AB and CD, lxhgww's speed on AB is P and on CD is Q, he can move with the s

2016蓝桥杯省赛C/C++A组第六题 寒假作业

题意:现在小学的数学题目也不是那么好玩的. 看看这个寒假作业: □ + □ = □ □ - □ = □ □ × □ = □ □ ÷ □ = □ 每个方块代表1~13中的某一个数字,但不能重复. 比如: 6 + 7 = 13 9 - 8 = 1 3 * 4 = 12 10 / 2 = 5 以及: 7 + 6 = 13 9 - 8 = 1 3 * 4 = 12 10 / 2 = 5 就算两种解法.(加法,乘法交换律后算不同的方案) 你一共找到了多少种方案? 分析:回溯即可,但是如果等到cur==12