NOJ 1042 区间最值
来源:互联网 发布:金蝶软件精斗云 编辑:程序博客网 时间:2024/05/29 14:38
区间最值
Time Limit(Common/Java) : 1000 MS/ 3000 MS Memory Limit : 65536 KByte
Total Submit : 1151 Accepted : 268
Total Submit : 1151 Accepted : 268
Description
给定一个长度不超过10000的整数序列,对这个序列有不超过500000个询问,每次询问给定区间之内的最小值.
Input
第一行一个整数N(N<=10000)
第二行N个整数
第三行一个整数Q
以下共Q行,每行两个整数i,j用空格隔开,询问第i号元素到第j号元素之间的最小值
Output
每个询问输出一行,包含一个整数,为询问区间内的最小值
Sample Input
5
1 2 3 4 5
2
1 5
3 4
Sample Output
1
3
Source
NUAA
看到题目第一反应是二分,但仔细想想有点不对劲,因为二分查找是针对于有序数组的,这题显然是无序的,所以要么很难要么很水【手动笑哭脸】,显然这题不难,只要弄个结构体记录一下序号,然后把数组从小到大排个序,最后就可以从前往后依次比对一下看哪个数的序号最先落在所求区间内,所找的这个数就是答案。
#include<cstdio>#include<algorithm>#include<iostream>using namespace std;struct data{int ord;int val;} num[10005];bool cmp(data d1,data d2){return d1.val<d2.val;}int main(){int N;scanf("%d",&N);for(int i=0; i<N; i++){scanf("%d",&num[i].val);num[i].ord=i;}sort(num,num+N,cmp);int Q;scanf("%d",&Q);int s,e;while(Q--){scanf("%d%d",&s,&e);for(int i=0;i<N;i++){if(num[i].ord>=(s-1)&&num[i].ord<=(e-1)){printf("%d\n",num[i].val);break;}}}}
0 0
- NOJ 1042 区间最值
- 南邮 OJ 1042 区间最值
- 区间最值 RMQ
- 区间最值
- 区间最值问题
- 区间最值
- RMQ(区间最值)
- rmq区间最值
- rmq(区间最值)
- 求解区间最值
- 区间和 | 区间最值-区间k大
- RMQ 区间最值问题
- RMQ区间最值问题
- RMQ求区间最值
- 区间最值线段树
- 区间最值与求和
- RMQ-区间最值问题
- 区间最值的问题
- Android开发笔记之主题背景的修改(设置Theme.NoTitleBar后Activity背景变成黑色)
- Android-----借助MINA框架实现长连接、短连接以及断线重连
- 关于checkbox全选的问题
- 打印机 针式打印机 热敏打印机
- bzoj1085骑士精神 题解(IDA*入门题)
- NOJ 1042 区间最值
- Map按值排序
- 第四章Response和增删改查(2)
- ViewPager欢迎界面到引导界面的的实现之一
- 扩展kmp算法
- 基于Zabbix + Docker开发的监控系统
- oracle函数---trunc
- 灰度图像简单二值化方法
- 表单提交乱码