POJ 3264 Balanced Lineup RMQ问题 ST算法
来源:互联网 发布:windows平板哪个好 编辑:程序博客网 时间:2024/05/16 15:23
ST算法的裸题,适合初学时做
参考资料:《训练指南》P197
#include <cstdio>#include <algorithm>#include <cmath>#define exp 1e-7using namespace std;int a[50010],n,q;int dpmax[50010][20],dpmin[50010][20];inline int log2(int x){return (int)(log(x)/log(2)+exp);}void make_dp(){for (int i=1;i<=n;i++){dpmax[i][0]=a[i];dpmin[i][0]=a[i];}for (int i=1;i<=20;i++){for (int j=1;j<=n;j++){if (j+(1<<i)-1<=n){dpmax[j][i]=max(dpmax[j][i-1],dpmax[j+(1<<(i-1))][i-1]);dpmin[j][i]=min(dpmin[j][i-1],dpmin[j+(1<<(i-1))][i-1]);}}}}int query(int l,int r){int t=log2(r-l+1);int mina=min(dpmin[l][t],dpmin[r+1-(1<<t)][t]);int maxa=max(dpmax[l][t],dpmax[r+1-(1<<t)][t]);return maxa-mina;}int main(){scanf("%d%d",&n,&q);for (int i=1;i<=n;i++){scanf("%d",&a[i]);}make_dp();int x,y;for (int i=1;i<=q;i++){scanf("%d%d",&x,&y);printf("%d\n",query(x,y));}return 0;}
0 0
- Poj 3264 Balanced Lineup【RMQ----ST算法】
- POJ 3264 Balanced Lineup RMQ问题 ST算法
- RMQ的ST算法学习小记 Poj 3264 Balanced Lineup
- [POJ 3264]Balanced Lineup(ST算法求RMQ)
- 【POJ】3264 - Balanced Lineup(RMQ - ST算法 || 线段树)
- (模板题)poj 3264 Balanced Lineup(RMQ的ST算法)
- POJ 3264-Balanced Lineup(RMQ-ST算法)
- POJ 3264 Balanced Lineup RMQ问题 ST算法 O(1)查找区间最值
- POJ 3264 Balanced Lineup (ST算法入门)
- POJ 3264 Balanced Lineup ST算法
- poj 3264 Balanced Lineup ST算法
- Balanced Lineup-POJ - 3264-RMQ线段树/st表
- 线段树 ST算法 RMQ poj 3264 Balanced Lineup 解题报告
- POJ 3264 Balanced Lineup (RMQ问题)
- POJ 3264--Balanced Lineup(RMQ问题)
- 【RMQ问题】 poj 3264 Balanced Lineup
- Balanced Lineup poj 3264 RMQ问题
- Balanced Lineup+POJ+RMQ问题
- thinkphp学习_第三天
- OpenGL-绘制简单矩形
- 今年暑假不AC
- 服务器运维与网站架构|Linux运维|X研究
- 使用spring的aop模拟事物
- POJ 3264 Balanced Lineup RMQ问题 ST算法
- JAVA——设计模式
- 软件测试计划和测试方案区别
- HTTP通讯请求工具包
- How to show or hide filename extensions on Mac
- 详解coredump
- webpack tpl 模板编译的桥梁 tpl-lite-loader
- 基于Selenium一键写CSDN博客
- 闪屏页