poj 3264 RMQ 最小值 最大值

rmp算法详细介绍&&poj3264 <br />RMQ(Range Minimum/Maximum Query)问题:<br />RMQ问题是给定一个区间,求这个区间中的最大或最小值的问题<br />RMQ采用动态规划的思想来求解:(st算法:Square Table):<br />预处理:<br />预处理使用DP的思想,f(i, j)表示[i, i+2^j - 1]区间中的最小值。<br />例如,f(0, 0)表示[0,0]之间的最小值,就是num[0], f(0, 2)表示[0, 3]之间的最小值, f(2, 4)表示[2, 17]之 阅读详情
ST算法(Sparse Table):它是一种动态规划的方法。
以最小值为例。a为所寻找的数组.
用一个二维数组f(i,j)记录区间[i,i+2^j-1](持续2^j个)区间中的最小值。其中f[i,0] = a[i];
所以,对于任意的一组(i,j),f(i,j) = min{f(i,j-1),f(i+2^(j-1),j-1)}来使用动态规划计算出来。
这个算法的高明之处不是在于这个动态规划的建立,而是它的查询:它的查询效率是O(1).
假设我们要求区间[m,n]中a的最小值,找到一个数k使得2^k<n-m+1.
这样,可以把这个区间分成两个部分:[m,m+2^k-1]和[n-2^k+1,n].我们发现,这两个区间是已经初始化好的.
前面的区间是f(m,k),后面的区间是f(n-2^k+1,k).

这样,只要看这两个区间的最小值,就可以知道整个区间的最小值!

poj 3264

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
#define M 50005
int mx[M][16],mi[M][16];
int a[M];

void rmqinit(int n)
{
    for(int i=1;i<=n;i++)
    {
        mx[i][0]=mi[i][0]=a[i];
    }
    int i,j;
    for(j=1;1<<j<=n;j++)  //here:Why j is in front of i ??
    {
        for(i=1;i+(1<<j)-1<=n;i++)
        {
            int t=(1<<(j-1))+i;
            mx[i][j]=max(mx[i][j-1],mx[t][j-1]);
            mi[i][j]=min(mi[i][j-1],mi[t][j-1]);
        }
    }
}

int qmx(int l,int r)
{
    int k=(int)( log((r-l+1)*1.0) / log(2.0));
    return max(mx[l][k],mx[r-(1<<k)+1][k]);
}

int qmi(int l,int r)
{
    int k=(int)( log((r-l+1)*1.0) / log(2.0));
    return min(mi[l][k],mi[r-(1<<k)+1][k]);
}

int main()
{
    int n,q,l,r;
    while(~scanf("%d%d",&n,&q))
    {
        for(int i=1;i<=n;i++)
        {
            scanf("%d",a+i);
        }
        rmqinit(n);

        while(q--)
        {
            scanf("%d%d",&l,&r);
            printf("%d\n",qmx(l,r)-qmi(l,r));
        }
    }
}
VMware虚拟机安装MS-DOS 7.10教程 dos安装教程dos版本7.10附下载链接。 阅读详情

相关推荐

ArcMap学习笔记(三)地图数字化

地图数字化前言地图数字化实现步骤1.加载地形图2.新建要素图层3.开启编辑环境4.设置捕捉环境5.选择数字化图层6.数字化控制点7.数字化等高线8.数字化图幅边框9.保存数字化成果总结 前言 使用软件:ArcMap10.4.1中文版 如果出现侵权,请在评论留言,我会及时删除,谢谢。 地图数字化 空间数据采集(输入)是将现有的地图、外业观测成果、航空像片、遥感图片数据、文本资料等转换成GIS可以直接...

JayWang博客 1万+

RMQ范围最小值总结(紫书)

RMQ用于求区间最值问题。需要O(nlogn)的预处理时间,查询时间为O(1),用于解决大量查询的时间复杂度优化,是一个很简单的算法,思路很好想,代码也不长,很好写。 在讲解之前需要注意的点: 1.数组下标从0开始。 2. i 代表的是长度下标, j代表的是2的幂数,2^j 代表下标。 附下图(我临摹地可能不好额emmmm) d[i][j]表示从i开始的,长度为2^j的...

zhiyeegao的博客 6372

钓鱼工具gophish史上最详细教程(附实例) —— 手把手教你成为“捕鱼人”

关于钓鱼工具 —— Gophish的超详细教程!

Ve99tr’s Blog 10万+

NYOJ-最大值和最小值

最大值和最小值 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述小明在上C语言课时老师布置了一道编程作业,要求是给你一个数(数的长度小于100)让你求出由该数的数字组成的最大值和最小值,由于小明编程学的不好但为了完成作业,想请你帮助他。 输入第一行输入一个数N(0 输出每组输出占一行,输出由M的数字组成的最大值和最小值,并且最大值和

qq_18062811的专栏 1459

【零基础学习CAPL】——弹窗信息提示

不用手动制作Panel窗口,直接使用CAPL脚本实现弹窗提示。//没有wait超时,等待测试人员确认//有wait超时,对话框在超时后自动终止//有wait超时,可以显示一个资源,即对话框可以显示额外的信息。/*参数说明text:显示在弹窗中的内容,长度限制在4096字符timeout:弹窗自动结束的时间,单位:ms。若为0,则无超时控制heading:对话框文本上方的标题。字符串最大长度限制在256个字符。resource:URL或文件路径。字符串的最大长度是有限的(512个字符)。

LOVE135149的博客 268

YOLO26优化:原创自研 | 自研独家创新DSAM注意力 ,基于BiLevelRoutingAttention注意力升级

提出新颖的注意力DSAM(Deformable Bi-level SpatialAttention Module),创新度极佳,适合科研创新,效果秒杀CBAM,Channel Attention+Spartial Attention升级为新颖的Deformable Bi-level Attention+Spartial Attention

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 370

RMQ(模板 ST 区间最值,区间频繁次数)

RMQ(模板 ST 区间最值,区间频繁次数)

3585

自然语言处理6 -- 情感分析

1 概述 情感分析是自然语言处理中常见的场景,比如淘宝商品评价,饿了么外卖评价等,对于指导产品更新迭代具有关键性作用。通过情感分析,可以挖掘产品在各个维度的优劣,从而明确如何改进产品。比如对外卖评价,可以分析菜品口味、送达时间、送餐态度、菜品丰富度等多个维度的用户情感指数,从而从各个维度上改进外卖服务。 情感分析可以采用基于情感词典的传统方法,也可以采用基于深度学习的方法,下面详细讲解 ...

谢杨易的博客 5万+

模板_RMQ(范围最小值问题)

读入处理,d[i][j]数组存第i到2^j的最小值void RMQ_init(const vector<int> &A){ int n=a.size(); for(int i=0;i<n;i++) d[i][0]=A[i]; for(int j=1;(1<<j)<=n;j++) for(int i=0;i+(1<<j)-1<n;i++)

BeiYu 567

嵌入式AI实战:基于RK3588部署YOLOv11并集成OpenCV实现实时推理(全流程详解)

本文详细介绍了在RK3588芯片上部署YOLOv11目标检测模型的全流程,包括环境搭建、模型转换和实时推理实现。主要内容为:1)通过YOLOv11官方工具将PyTorch模型转为ONNX格式;2)使用RKNN Toolkit2将ONNX模型转换为适配RK3588的RKNN格式;3)在RK3588上结合OpenCV实现实时视频推理功能。教程提供了完整的代码示例和详细步骤说明,帮助开发者快速在边缘设备上部署目标检测模型,实现AI视觉应用的落地。

LXY_LOVE36的博客 214

【大模型】从0到1:DeepSeek + Coze API调用全攻略,企业,开发个人专属AI智能体使用详解,小白也能轻松上手

本文介绍了如何通过API将Coze智能体集成到自有系统中的完整步骤:1)获取API token和个人工作空间的space_id;2)通过GET请求获取bot_id;3)使用POST发起对话请求,需包含bot_id、user_id和问题内容;4)通过两次API调用异步获取响应消息。文章还解释了Coze采用异步处理机制的原因,并预告了下期将讲解Java调用Coze接口的实现方法。整个过程需要使用API工具进行调试,确保了系统集成的可行性。

qq_27246521的博客 824

RMQ问题--范围最小值问题

范围最小值问题(Range Minium Query,RMQ)---RMQ问题 一、一维问题 给出一个n个元素的数组A1,A2,...,An, 设计一个数据结构, 支持查询操作Query(L,R):计算min(AL,AL+1,...AR) 显然, 用一个循环来计算最小值 显然不够快, 即使是前缀和的思想也不能提高效率! 那么, 实践中最常用的是Tarjan...

weixin_30325487的博客 201

泛微OA集成阿里云短信(E9保姆教程)

泛微OA集成阿里云短信(E9保姆教程)

技术分享 517

poj 3264 Balanced Lineup(线段树、RMQ)

题目链接:http://poj.org/problem?id=3264 思路分析: 典型的区间统计问题,要求求出某段区间中的极值,可以使用线段树求解。 在线段树结点中存储区间中的最小值与最大值;查询时使用线段树的查询 方法并稍加修改即可进行查询区间中最大与最小值的功能。 代码(线段树解法): #include <limits> #include &l...

aqjh9999的博客 147

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

POJ3264 Balanced Lineup

题目链接:http://poj.org/problem?id=3264   RMQ裸题   贴代码 var n,Q:longint; fmax,fmin:array[0..50005,0..20]of longint; function min(x,y:longint):longint; begin if x<y then exit(x) else exit(y);

白云千载空悠悠 279

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

POJ 3264 Balanced Lineup (RMQ)

题目地址:POJ 3264 为了学LCA在线算法,先学一下RMQ。。。RMQ第一发,纯模板题。不多说。 代码如下:#include <iostream> #include <string.h> #include <math.h> #include <queue> #include <algorithm> #include <stdlib.h> #include <map> #include <s

scf0920 791

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

|poj 3264|RMQ|Balanced Lineup

poj 3264RMQ模板题。#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define ms(i, j) memset(i, j, sizeof i) using namespace std;const int MAXN = 50000 + 5;int n, q; int h[MAXN], fmaxi

博客停更,请到"再见,优快云"文章中找新博客地址 460

RMQ 问题 POJ 3264 求解任意指定区间内的最小值和最大值

<br />分析思路:任意给一组数据,然后指定区间,给出起始位置和终止位置,然后求得该区间内的最小值和最大值之差。<br /> (1)我们可以之间用 线性搜索法求得指定区间内的 最小值和最大值,时间复杂度为 O(1)。<br />  (2)我们也可以采用快速搜索法,可以这两种算法都会出现超时<br />快速算法介绍:<br />  功 能: 使用快速排序例程进行排序 <br /> 用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(co

hoppboy的专栏 1134

poj 3264 Balanced Lineup (RMQ)

1 /******************************************************* 2 题目: Balanced Lineup(poj 3264) 3 链接: http://poj.org/problem?id=3264 4 题意: 给个数列,查询一段区间的最大值与最小值的差 5 算法: RMQ 6 ***...

weixin_30682127的博客 62

询问区间内最大值-最小值

POJ 3264 Balanced Lineup(简单RMQ) http://poj.org/problem?id=3264 题意:           For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same order. One day Farmer John deci...

周周的博客 803

poj-3264-Balanced Lineup

poj 3264 Balanced Lineup link:http://poj.org/problem?id=3264                                     Balanced Lineup Time Limit:5000MS Memory Limit:65536K Total Submissions...

weixin_30278237的博客 98

POJ 3264 Balanced Lineup(RMQ)

题目链接: POJ 3264 Balanced Lineup 题意: 输出Q次查询区间的最小值和最大值之差。 分析: RMQ的应用。//8416K 3579MS #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> using namespace std; const int MAX_N=500

ramay7 358

【清北前紧急补课1】rmq

poj3264 balanced lineup 题目描述 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...

weixin_30415113的博客 98

RMQ poj 3264

poj 3264  Balanced Lineup 题目大意:对给定的区间求区间的最大最小值之差,利用RMQ,时间复杂度可降为O(nlog(n)) #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <sta...

weixin_30294021的博客 106

[USACO07JAN]平衡的阵容Balanced Lineup

题目:POJ3264、洛谷P2880。 题目大意:有一个序列,每次问你一个区间里最大值与最小值的差。 解题思路:此题是一道RMQ问题,然而我只会线段树啊!于是线段树乱搞。 然后发现又R又T结果是因为读入优化写错了~~~~(>_<)~~~~ C++ Code: #include<cstdio> #include<cctype> usi...

240

RMQ

RMQ是一种离线算法,通常用于求出区间【l,r】中的最大值或者最小值。 显然这种问题用线段树是能解决的,我之前也一直用的线段树完成这题。 RMQ,简称ST算法。 通过进行(nlogn)的预处理等操作,使询问的时间复杂度 达到 O(1),在此当然也蕴含着dp的思想。 具体:   设立一个数组dp【i】【j】 存着区间【i , i + 2^j-1】的最大值或...

weixin_30690833的博客 72
上一篇: poj 1611 并查集
下一篇: POJ 3041 二分图匹配
MakingMaker
博客等级 码龄15年 6粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值