数据结构 RMQ
来源:互联网 发布:ubuntu虚拟机 编辑:程序博客网 时间:2024/05/21 08:48
学习一下 RMQ,好吧,算是dp
学习链接→ 戳这里和戳这里
poj 3264 算是模板题
RMQ,求给定区间的最值问题的,非线段树方法,DP
#include <iostream>#include <cstdio>#include <algorithm>#include <math.h>#include <cstring>using namespace std;const int maxn=50010;int a[maxn];int ma[maxn][20],mi[maxn][20];int n,q;void rmq_into(){for(int i=1;i<=n;i++)ma[i][0]=mi[i][0]=a[i];for(int j=1;(1<<j)<=n;j++){for(int i=1;i+(1<<j)-1<=n;i++){ma[i][j]=max(ma[i][j-1],ma[i+(1<<(j-1))][j-1]);mi[i][j]=min(mi[i][j-1],mi[i+(1<<(j-1))][j-1]);}}} int get(int l,int r,bool mmax){int k=(int)(log(r-l+1.0)/log(2.0));if(mmax)return max(ma[l][k],ma[r-(1<<k)+1][k]);else return min(mi[l][k],mi[r-(1<<k)+1][k]);}int main(){int l,r;while(~scanf("%d%d",&n,&q)){for(int i=1;i<=n;i++)scanf("%d",&a[i]);rmq_into();for(int i=1;i<=q;i++){scanf("%d%d",&l,&r);printf("%d\n",get(l,r,1)-get(l,r,0));}}return 0;}
0 0
- 数据结构 RMQ
- [数据结构]RMQ算法
- 数据结构专题小结:RMQ问题
- 『数据结构』RMQ 问题
- RMQ
- RMQ
- RMQ
- RMQ
- RMQ
- RMQ
- RMQ
- RMQ
- RMQ
- rmq
- RMQ
- RMQ
- RMQ
- RMQ
- 升高、降低gcc版本的简易方法
- Netty实现服务端客户端长连接通讯及心跳检测
- 手把手教你扩展个人微信号(2)
- Handler中的sendToTarget()
- 一个完整直播app功能分析
- 数据结构 RMQ
- 常用正则表达式
- multipartfile 转 file
- GC对象分配规则
- spring data jpa 查询时的统计
- 5分钟内搞定 Tomcat 的 SSL 配置
- Android LLVM-Obfuscator C/C++ 混淆编译的深入研究
- kudu安装测试随笔
- 最详细的Linux YUM命令使用教程