POJ 3264 Balanced Lineup(RMQ)
来源:互联网 发布:淘宝卖玩具利润怎么样 编辑:程序博客网 时间:2024/06/07 07:07
题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27676#problem/A
代码:
#include<stdio.h>#include<string.h>#include<vector>#include<algorithm>const int maxn=50000+5;int dmaxn[maxn][20];int dminn[maxn][20];using namespace std;void RMQ_init(const vector<int>& A){ int n=A.size(); for(int i=0;i<n;i++)dmaxn[i][0]=A[i]; for(int j=1;(1<<j)<=n;j++) { for(int i=0;i+(1<<j)-1<n;i++) { dmaxn[i][j]=max(dmaxn[i][j-1],dmaxn[i+(1<<(j-1))][j-1]); } } n=A.size(); for(int i=0;i<n;i++)dminn[i][0]=A[i]; for(int j=1;(1<<j)<=n;j++) { for(int i=0;i+(1<<j)-1<n;i++) { dminn[i][j]=min(dminn[i][j-1],dminn[i+(1<<(j-1))][j-1]); } }}int RMQ(int L,int R){ int k=0; while(1<<(k+1)<=R-L+1) k++; return max(dmaxn[L][k],dmaxn[R-(1<<k)+1][k])-min(dminn[L][k],dminn[R-(1<<k)+1][k]);}int main(){ int n,q; scanf("%d%d",&n,&q); vector<int>k; for(int i=0;i<n;i++) { int x; scanf("%d",&x); k.push_back(x); } RMQ_init(k); for(int i=0;i<q;i++) { int x,y; scanf("%d%d",&x,&y); printf("%d\n",RMQ(x-1,y-1)); }}
0 0
- poj 3264 Balanced Lineup (RMQ))
- poj 3264 Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup(简单RMQ)
- Balanced Lineup(RMQ)(POJ 3264)
- POJ 3264--Balanced Lineup(RMQ问题)
- POJ 3264 Balanced Lineup(RMQ详解)
- POJ 3264 Balanced Lineup(RMQ模板)
- POJ 题目3264 Balanced Lineup(RMQ)
- poj 3264 Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup(RMQ)
- poj 3264 Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup(RMQ)
- POJ - 3264 - Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup (RMQ)
- linux基本命令(46)——vmstat命令
- poj1125Stockbroker Grapevine(最短路floyd)
- 保存图片到本地相册
- 树状数组
- DVWA
- POJ 3264 Balanced Lineup(RMQ)
- 系统状态栏
- Android MVP 如何组织表示层
- VPN
- 西邮linux小组面试题总结(2016-5-30)
- 欢迎使用CSDN-markdown编辑器
- quartz-2.2.2.jar + spring 3.2 定时器配置
- CC++结构体初始化与赋值
- soj1219新红黑树 记忆化搜索