博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 3264
阅读量:4487 次
发布时间:2019-06-08

本文共 2069 字,大约阅读时间需要 6 分钟。

For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same order. One day Farmer John decides to organize a game of Ultimate Frisbee with some of the cows. To keep things simple, he will take a contiguous range of cows from the milking lineup to play the game. However, for all the cows to have fun they should not differ too much in height.

Farmer John has made a list of Q (1 ≤ Q ≤ 200,000) potential groups of cows and their heights (1 ≤ height ≤ 1,000,000). For each group, he wants your help to determine the difference in height between the shortest and the tallest cow in the group.

Input

Line 1: Two space-separated integers, 
N and 
Q
Lines 2.. 
N+1: Line 
i+1 contains a single integer that is the height of cow 
i 
Lines 
N+2.. 
N
Q+1: Two integers 
A and 
B (1 ≤ 
A ≤ 
B ≤ 
N), representing the range of cows from 
A to 
B inclusive.

Output

Lines 1.. 
Q: Each line contains a single integer that is a response to a reply and indicates the difference in height between the tallest and shortest cow in the range.

Sample Input

6 31734251 54 62 2

Sample Output

630 解题思路; 求区间最值直接用ST算法就行了。 模板:
#include
using namespace std;#define MAXN 50010#define Max(x,y) (x>y?x:y)#define Min(x,y) (x>y?y:x)int maxsum[MAXN][20],minsum[MAXN][20];//表示从第i个数起连续2^j个数中的最大值/最小值void RMQ(int num){ for(int j=1;j<20;j++) for(int i=1;i<=num;i++) { if(i+(1<
<= num) { maxsum[i][j]=Max(maxsum[i][j-1],maxsum[i+(1<<(j-1))][j-1]); minsum[i][j]=Min(minsum[i][j-1],minsum[i+(1<<(j-1))][j-1]); } }}int main(){ int i,j,num,t,query; while(scanf("%d%d",&num,&query) != EOF) { for(i=1;i<=num;i++) { scanf("%d",&maxsum[i][0]); minsum[i][0]=maxsum[i][0]; } RMQ(num); int st,en,maxl,minl; while(query--) { scanf("%d%d",&st,&en); int k=(int)(log(en-st+1)/log(2.0)); maxl=Max(maxsum[st][k],maxsum[en-(1<

 

转载于:https://www.cnblogs.com/kls123/p/7133664.html

你可能感兴趣的文章
asp网络编程:Web程序中网页间数据传递方法小结
查看>>
wust2012级软件工程新生经验交流会草稿
查看>>
CheeseZH: Stanford University: Machine Learning Ex2:Logistic Regression
查看>>
sql 查询所有子节点示例
查看>>
uva 1328(kmp)
查看>>
ES6
查看>>
浏览器前缀
查看>>
[POJ 1006] 生理周期
查看>>
git
查看>>
登录模块业务逻辑
查看>>
python全栈脱产第20天------常用模块---re模块和subprocess模块
查看>>
【Android进阶】SlidingMenu实现侧滑栏效果的实现
查看>>
discuz是如何判断手机端访问的
查看>>
Sencha Touch 心得
查看>>
安全问题关注博客
查看>>
181101新闻:午后阳光下集思广益,课例研修尝试与挑战并存
查看>>
[Sdoi2013] 直径
查看>>
linux yum命令详解
查看>>
汇编语言笔记10-CALL和RET指令
查看>>
JavaScript不用临时变量交换两个变量的值的七种解决方案
查看>>