P3865 【模板】ST 表

P3865 【模板】ST表 阅读详情
学习链接:点击进入
题目链接:点击进入
题目

在这里插入图片描述

思路

ST 表是解决 RMQ 问题 ( 区间最值问题 ) 的一种强有力的工具
O ( n log n ) 预处理,O ( 1 ) 查询最值
maxx [ i ] [ j ] 表示,从 i 位置开始的 2 j 2^j 2j 个数中的最大值,也就是 a [ i ] ~ a [ i + 2 ^ j - 1 ] 中的最大值
初始化 maxx [ i ] [ 0 ] = a [ i ]
转移方程 maxx [ i ] [ j ] = max ( maxx [ i ] [ j - 1] , maxx [ i + (1 << j - 1 ) ] [ j - 1] )
查询 max ( dp [ l ] [ k ] , dp [ r - (1 << k ) + 1 ] [ k ] )( 查询 [ l , r ] 内的最大值,k = log2 ( r - l + 1 ) )

代码
// Problem: P3865 【模板】ST 表
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/P3865
// Memory Limit: 125 MB
// Time Limit: 800 ms
// 
// Powered by CP Editor (https://cpeditor.org)

//#pragma GCC optimize(3)//O3
//#pragma GCC optimize(2)//O2
#include<iostream>
#include<string>
#include<map>
#include<set>
//#include<unordered_map>
#include<queue>
#include<cstdio>
#include<vector>
#include<cstring>
#include<stack>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<fstream>
#define X first
#define Y second
#define best 131 
#define INF 0x3f3f3f3f3f3f3f3f
#define pii pair<int,int>
#define lowbit(x) x & -x
#define inf 0x3f3f3f3f
//#define int long long
//#define double long double
//#define rep(i,x,y) for(register int i = x; i <= y;++i)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const double pai=acos(-1.0);
const int maxn=1e6+10;
const int mod=1e9+7;
const double eps=1e-9;
const int N=5e3+10;
/*--------------------------------------------*/
inline int read()
{
    int k = 0, f = 1 ;
    char c = getchar() ;
    while(!isdigit(c)){if(c == '-') f = -1 ;c = getchar() ;}
    while(isdigit(c)) k = (k << 1) + (k << 3) + c - 48 ,c = getchar() ;
    return k * f ;
}
/*--------------------------------------------*/

int n,m,a[maxn];
int maxx[maxn][21];
int query(int l,int r)
{
	int k=log2(r-l+1);
	return max(maxx[l][k],maxx[r-(1<<k)+1][k]);
}

int main() 
{
//	ios::sync_with_stdio(false);
//	cin.tie(0);cout.tie(0);
	n=read(),m=read();
	for(int i=1;i<=n;i++) a[i]=read();
	for(int i=1;i<=n;i++) maxx[i][0]=a[i];
	for(int j=1;(1<<j)<=n;j++)
		for(int i=1;i+(1<<j)-1<=n;i++)
			maxx[i][j]=max(maxx[i][j-1],maxx[i+(1<<(j-1))][j-1]);
	while(m--)
	{
		int l,r;
		l=read(),r=read();
		printf("%d\n",query(l,r));
	}
    return 0;
} 
Unity - gamma space下还原linear space效果 还有头发之后的 (头发没有处理完整,因为使用 ASE 连连看练出来的,使用 surface shader,虽然可以生成一下 vert, frag 的方式在修改,但是我懒得去修改了,这样就是 PBR 的 BRDF 里面的部分曲线是不一样的,所以可以看到头发有一些差异)其实上面的代码判断 是否有分量 > 1.0f 的方式来判断是否 HDR 是不太合理的,因为不同的贴图格式的编码方式不同。还有比较隐蔽的一些颜色相关的常量值 (比如PBR中的 绝缘体的 F0 常量值,等等) 阅读详情

相关推荐

Oracle EBS R12.2 安装 -- Step by Step

Oracle EBS R12.2 安装 -- Step by Step

Albert Tan DBA之路 1512

洛谷 P3865 【模板】ST表

ST 表模板。求静态区间最大值。 用 lg[n] 表示 ⌊log⁡2n⌋\lfloor\log_2n\rfloor⌊log2​n⌋,预处理出该数组,然后用 st[i][j] 表示区间 [i,i+2j)[i,i+2^j)[i,i+2j) 的最大值,则存在递推关系: st[i][j]=max⁡(st[i][j−1],st[i+2j−1][j−1]) st[i][j]=\max(st[i][j-1],s...

wineandchord 196

【TestNG自动化测试框架详解】

TestNG是一款设计测试用例执行流程的测试框架。

weixin_43936332的博客 1539

洛谷 P3865:【模板】ST 表 & RMQ 问题

ST算法详见:https://blog.youkuaiyun.com/hnjzsyjyj/article/details/103429761

hnjzsyjyj的专栏 1517

银河麒麟arm64 V10 SP1桌面系统高效部署onnxruntime推理环境实战

本文详细介绍了在银河麒麟arm64 V10 SP1桌面系统上高效部署onnxruntime推理环境的完整实战流程。从系统环境准备、关键依赖安装,到onnxruntime的安装验证,并以YOLOv5模型部署为例进行性能对比分析,提供了在国产化飞腾D2000平台上进行AI边缘推理的实用指南和避坑技巧。

ss78901的博客 636

正版63棋牌源代码游戏+728游戏全套带前端源代码解析

这俩天抽时间仔细看了一下这套项目包含完整的前端、后端及后台管理系统。从上传的截图可以看出,前端基于资源目录,后端采用和,后台管理界面提供数据查询与管理功能。本篇文章将从前端结构、后端接口、数据库设计、常见 BUG 及优化方法等方面逐步拆解,并给出相应的代码示例和实践经验。

aa2031171的博客 3571

【模板】ST表

【模板】ST表

脚踏实地,仰望星空 2725

链接文件及功能安全:Hightec如何将Flash驱动放进RAM

Fls本身是无法操作自身的,犯冲突。Fls_WriteCmdCycles (预留300字节)与 Fls_EraseCmdCycles(预留200字节) 函数在执行之前将会Copy进RAM,Fls本身是不能操作Fls本身的,除非把最底层的驱动函数防止在RAM或者其他的Flash里面,假设Flash放置在PF0可以操作PF1。英飞凌的驱动有个规定写指令预留300字节,擦除指令预留200字节。

梦想技术家 2141

基础算法——ST表(倍增思想)

这个题目还可以用线段树维护。题意:求区间最大最小值的差值。

victor_hq的博客 797

硬核干货|C#+EtherCAT协议:高精度多轴伺服运动控制通信实战

本文摘要: 文章聚焦工业自动化领域多轴伺服运动控制的高精度与实时性需求,基于C#与EtherCAT协议实现完整解决方案。EtherCAT凭借微秒级同步、分布式架构等优势成为首选,而C#通过优化GC策略和实时线程可满足工业控制要求。文章从工程落地角度,详细拆解EtherCAT的PDO/SDO通信机制与多轴同步控制逻辑,提供完整的C#代码实现(主站初始化、伺服配置、运动控制等),所有代码均通过汇川/松下伺服实测验证。核心亮点包括:纯C#原生开发、工业现场高频问题解决方案、硬件适配指南,帮助开发者快速掌握高精度多

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 577

YOLOv11改进策略【Neck】| SEAM:分离和增强注意模块,解决复杂场景下的小目标遮挡问题

本文记录的是利用 SEAM 模块优化 YOLOv11 的目标检测网络模型。的设计出发点在于解决复杂场景下的人脸遮挡问题,相当于是小目标被其他物体部分遮挡时,传统方法因特征缺失导致检测精度下降的问题。该模块通过增强未遮挡区域的特征响应并补偿被遮挡区域的信息损失,提升模型对遮挡小目标的检测能力。YOLO-FaceV2: A Scale and Occlusion Aware Face DetectorSEAM模块(Separated and Enhancement Attention Module)的设计出发点

Limiiiing的博客 2280

洛谷P3865 RMQ问题ST表模板题

洛谷P3865 RMQ问题ST表模板题 链接:https://www.luogu.org/problemnew/show/P3865 题目: 题目背景 这是一道ST表经典题——静态区间最大值 请注意最大数据时限只有0.8s,数据强度不低,请务必保证你的每次查询复杂度为 O(1)O(1) O(1) 题目描述 给定一个长度为 N N N 的数列,和 M M M 次询问,求出每一次询问的区间内数字的最大...

V4yne.的博客 375

Python 爬虫实战:在丁香医生抓取健康科普文章阅读量,普及健康知识

requests:用于发送 HTTP 请求,获取网页内容。或 lxml:用于解析 HTML 页面,提取目标数据。pandas:用于数据清洗和分析。matplotlib和seaborn:用于数据可视化。通过本项目,我们实现了以下目标:使用 Python 爬虫抓取丁香医生的健康科普文章阅读量。对数据进行清洗和分析,找出热门文章。通过可视化展示数据,并普及健康知识。

u014481728的博客 1566

【洛谷】 P3865 【模板】ST 表 && RMQ 问题 的题解

一个 ST 表的板子题ST 表是一种基于树形结构的数据结构,用于处理区间查询和更新操作。它通过预处理的方式将原始数据存储在树状结构中,以支持高效的区间查询。ST 表的构建时间复杂度为Onlogn,其中n为原始数据的长度。但一旦构建完成,可以在Ologn的时间内进行区间查询和更新操作。令fij表示区间ii2j−1的最大值,所以fijmaxfij−1fi2j−1j−1])。所以对于每个区间lr可以分成两个部分ll2s。

ZH_qaq的博客 642

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

P3865 【模板】ST 表 + 快速读取

原题网址:P3865 【模板】ST 表 + 快速读取 题目背景 这是一道 ST 表经典题——静态区间最大值 请注意最大数据时限只有 0.8s,数据强度不低,请务必保证你的每次查询复杂度为O(1)O(1)。若使用更高时间复杂度算法不保证能通过。题目描述 给定一个长度为 NN 的数列,和 MM 次询问,求出每一次询问的区间内数字的最大值。 输入格式 第一行包含两个整数 N,MN,M,分别表示数列的长度和询问的个数。 第二行包含 NN 个整数(记为 a_ia i ​ ),依次表示数列的第 ii 项。 接.

YSJ的博客 330

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

洛谷P3865【模板】ST 表

/联系图1,i+(1

xixishuiba_CD的博客 962

ST表 洛谷 P3865 ST表模板题

ST表 洛谷 P3865 ST表模板题 首先,来说说为什么学ST表哈。 ST表类似于树状数组和线段树这两种数据结构 在解决RMQ问题时,ST表和线段树的预处理时间复杂度都是O(nlogn),两者的不同在于,在查询RMQ答案时,ST表的时间复杂度为O(1),而线段树却有 O (logn),这是ST表的优势就完全体现出来了。 ST表实际上是一个二维数组 ST[i] [j],含义是:从下标i 到下标 i...

qq_33437973的博客 484

洛谷 P3865 【模板】ST 表

ST表 区间查询 洛谷题解 C++代码 附详细注释

一只摸鱼的bbc 1052

P3865 【模板】ST 表 && RMQ 问题 题解

这是一道 ST 表经典题——静态区间最大值O1函数返回值为读入的第一个整数。

cyx20091026的博客 1017
上一篇: HDU - 7047 - Link with Balls ( 插板法 + 组合数 )
下一篇: P2251 - 质量检测( ST表 )
Cosmic_Tree
博客等级 码龄7年 134粉丝 337原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值