#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int a[N];
int f[N][16];
int n;
void rmq_init() //建立:dp(i,j) = min{dp(i,j-1),dp(i+2^(j-1),j-1) O(nlogn)
{
for (int i = 1; i <= n; i++)
f[i][0] = a[i];
int k = floor(log((double)n) / log(2.0)); //C/C++取整函数ceil()大,floor()小
for (int j = 1; j <= k; j++)
for (int i = 1; i <= n; i++)
{
if (i + (1 << (j - 1)) <= n) //f(i,j) = min{f(i,j-1),f(i+2^(j-1),j-1)
f[i][j] = max(f[i][j - 1], f[i + (1 << (j - 1))][j - 1]); ///改为 min 可求最小值
}
}
int rmq(int i, int j) //查询:返回区间[i,j]的最小值
{
int k = floor(log((double)(j - i + 1)) / log(2.0));
return max(f[i][k], f[j - (1 << k) + 1][k]); ///改为 min 可求最小值
}
int main()
{
int icase = 0;
while(scanf("%d", &n)!=EOF)
{
memset(a,0,sizeof(a));
memset(f,0,sizeof(f));
for (int i = 1; i <= n; i++)
scanf("%d", &a[i]);
rmq_init();
int m;
printf("Case %d:\n",++icase);
scanf("%d",&m);
for(int i = 0; i < m; i++)
{
int x,y;
scanf("%d%d",&x,&y);
printf("%d\n",rmq(x,y));
}
}
}
相关推荐
数字通信:信源编码、信道编码、调制、物理信道、解调、信道解码、信源解码
在通信系统中,信息的传输通常需要经过一系列的处理步骤,确保数据可以在信道中高效且可靠地传输。以下是信源编码、信道编码、调制、物理信道、解调、信道解码、信源解码的具体含义及其常见技术的解释。
蓝桥之素数回文基础掌握 (Java)
/* * 该题模板适用广泛:可计算素数的,回文,求解回文素数个数,及各种相似变形题 * */ import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner (System.in); int a=...
STM32移植LVGL(LittleVGL)
**STM32移植LVGL(LittleVGL)**
ST表(模板)
//预处理复杂度同为O(nlogn),查询时间上,ST表为O(1),线段树为O(logn) #include<bits/stdc++.h> using namespace std; const int N=5e4+10; int a[N];//原始输入数组 //st表,表示需要查询的数组的从下标i到下标i+2^j-1的最值 int mx[N][30];//最大值 int mn[N][30];//最小值 //预处理 void init(int n) { for(int i=1;i.
TM1621/HT1621 段码LCD驱动器
TM1621 LCD 驱动器
避开这5个坑!STC8H DMA串口通信的实战避坑指南(115200波特率实测)
本文深入解析了STC8H单片机利用DMA实现稳定全双工串口通信的实战要点。针对115200高波特率场景,详细拆解了DMA-UART架构、关键寄存器配置、时钟精度计算、缓冲区管理及中断协同等核心环节,并提供了具体的避坑指南和调试方法,帮助开发者构建高效可靠的通信链路。
代码编写规则
我觉得这个应该有点用吧; 好就之前的,小白就看下吧,做个了解;
合成生物学中试:花钱只是开始,烧钱才是常态
2026年合成生物学行业面临严峻产业化挑战:多家企业终止发酵项目或延期投产,显示从实验室到工厂的转化困境。核心问题并非基因合成成本,而是工艺放大难题——67%项目在中试阶段因工艺问题失败。AI辅助无法替代工程经验,菌株-配方-工艺的三元适配需要长期数据积累。中试成本惊人,涉及设备折旧、原料消耗和稀缺工艺人才,而行业普遍回避讨论这些工程现实,导致认知偏差。建议创业者提前布局中试,将其视为核心竞争力而非简单成本项。合成生物学的真正瓶颈在于工程化能力,这需要时间沉淀而非技术叙事。
nefu暑假集训2 ST表 个人模板+例题汇总
前言:比较简单的一个算法了,原理相当于是用二进制优化的区间dp了,用于求一个区间的最大或最小值。其实这类问题一般用线段树就可以直接解决,但如果查询次数过多的话可能会超时,这时就是ST表出场的时候了,因为ST表是现预处理的,所以查询的操作时间复杂度为o(1)。
华为od面试手撕真题【分解质因数】
华为od面试手撕真题【分解质因数】
【系统分析师】2026年上半年真题:案例分析-答案及详解(回忆版)
案例一聚焦因果分析法(鱼骨图)的应用,分析企业订单履约问题。问题1阐述因果分析法定义及常见方法(鱼骨图、5个为什么等);问题2将8个原因归类为人员、方法、合同等5类;问题3筛选适合鱼骨图的场景(如系统响应慢、服务器故障等),强调其适用于复杂根因分析。 案例二对比嵌入式系统中Linux与RTOS的差异(实时性、资源占用等),结合智能监控终端需求推荐Linux+四核ARM方案(高算力、性价比),并列选Linux的5大优势(生态成熟、多任务支持等)。 案例三设计互联网医院系统用例图(患者、医生等参与
【模板】ST表
【模板】ST表
Python爬虫教程:抓取区块链交易信息及加密货币市场数据
随着区块链技术和加密货币的迅猛发展,区块链交易和加密货币市场的数据逐渐成为金融、技术、经济研究等领域的热点。对于开发者和研究者而言,实时获取区块链交易数据和加密货币市场行情,对于投资分析、市场预测、技术研究等具有重要的参考价值。本文将通过Python爬虫技术,介绍如何抓取区块链交易信息及加密货币市场数据,详细阐述数据获取的原理、技术方案、实现方法以及抓取到的数据的存储与分析。我们将依托最新的爬虫技术,如requestsSeleniumScrapy,以及相关的数据处理库(如pandasmatplotlib。
数据结构——ST表
ST表,又名稀疏表,是一种,用于解决的数据结构。
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
ssm框架搭建
这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载
ST表模板
ST 表(Sparse Table,稀疏表)是用于解决的数据结构。ST表基于倍增思想,预处理时间复杂度O(nlogn),O(1)处理每个询问。但是不支持修改操作。——oi wiki。
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
ST表详解+模板
ST表 基本概念 ST表是一个用来处理区间最值查询(RangeMaximum/Minimum Query)的离线算法。该算法分 为离线预处理O(n log n)和查询O(1)两个部分,其用到了倍增的思想。 某个区间查询问题是否适用ST表,关键在于其进行的操作是否允许区间重叠,例如max(a,b,c) = max{max(a,b),max(b,c)}就可以用ST表维护,而区间和问题则不能维护。 问题...
霍尼韦尔SoftMaster使用说明
霍尼韦尔SoftMaster使用说明
【模板】ST 表
这是一道 ST 表经典题——静态区间最大值O1函数返回值为读入的第一个整数。
模板题st表
这是一道 ST 表经典题——静态区间最大值O1函数返回值为读入的第一个整数。
并查集,ST表,树状数组总结
建最小生成树的过程中记录边的最大值即可。
ST 表相关练习题
本文介绍了三道ST表相关的练习题,难度递增。第一题"忠诚"是ST表模板题,用于区间最小值查询。第二题"最大数"提供了线段树和逆向ST表两种解法,重点讲解了动态更新ST表的技巧。第三题"01序列"考察最长子序列查询,结合了前缀和与ST表的应用,详细分析了三种可能情况及对应的处理方法。每道题都给出了完整的代码实现和解题思路,适合检验ST表的学习成果。文章结尾提供了相关学习资料链接,鼓励读者继续深入学习。
每日一题013-ST表-洛谷p3865-模板ST表&&RMQ
这是一道 ST 表经典题——静态区间最大值O1函数返回值为读入的第一个整数。
ST算法和ST表
,所以我们可以通过在输入数列a时进行一次预处理,将数列分为n个小段,对于每一个小段求出最大值(有点像最优子结构的意思),最后合并成原来的数列。先设f[i][j]表示数列a中从i开始的2^j个数的最大值,其中f[i][0]=a[i],因为f[i][0]表示a[i]到a[i]间的最大值。即从=以f[i][j] 为分界线,将他左边分成一段,再把他的右边分成一段.首先确定dp边界,就上上面说的f[i][0]的最大值就是a[i]。比如[1,3]=max([1,2],[2,3])f[i][j-1]的i表示i为起点,
P3865 【模板】ST 表
P3865 【模板】ST 表
4806



被折叠的 条评论
为什么被折叠?



