首页 > 编程语言 >ST算法

ST算法

时间:2023-08-07 18:45:45浏览次数:26  
标签:查询 算法 区间 长度 ST 预处理

没有修改的区间最值
\(O(nlogn)\)预处理
\(O(1)\) 查询
\(f[i][j]\) : 从 \(i\) 开始长度 \(2^j\) 的范围内的最大值
预处理是 前后两部分 合并结果
查询的时候从前往后长度 \(T\) 和 从后向前长度 \(T\) 的两段区间 并
\(T\) 是接近 \(r-l+1\) 最大的二进制数

void st_pre() {
	for (int i = 1; i <= n; i++) f[i][0] = a[i] ;
	int M = log(n) / log(2);
	for (int j = 1; j <= M; j++)
	for (int i = 1; i + (1 << j) - 1 <= n; i++) 
	f[i][j] = max(f[i][j - 1], f[i + (1 << (j - 1))][j - 1]) ;
} 

int st_qry(int l, int r) {
	int k = log(r - l + 1) / log(2);
	return max(f[l][k], f[r - (1 << k) + 1][k]) ;
}

标签:查询,算法,区间,长度,ST,预处理
From: https://www.cnblogs.com/lighthqg/p/17612428.html

相关文章

  • Wordpress:如何修改Astra主题的(navigation)翻页模块?
    使用Astra搭建日文网站的时候,因为默认是英文,有些模块需要改成日文;比如分页器(navigation) 具体步骤如下:1.进入后台点击Appearance->Themefileeditor-> inc/core/class-theme-strings.php  2.将所有的需要修改的文本修改成日文; 3.修改成功后,提示Fileeditedsuc......
  • 算法练习-day40
    动态规划309.买卖股票的最佳时机含冷冻期题意:给定一个整数数组prices,其中第  prices[i] 表示第 i 天的股票价格。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):卖出股票后,你无法在第二天买入股票(即冷冻期为1天)。注......
  • 【八股文 03】extern、static、this、inline、volatile 关键字
    0概览以下为概览,如果看到问题都能基本想到答案,则不需要看正文中详细的内容extern作用static作用修饰变量局部变量全局变量类成员变量修饰函数普通函数类成员函数this指针this指针的类型为?在常函数里this指针的类型为?inline内联函数的特点与......
  • vista.vim 一个好用tags列表
    环境要求gitclonehttps://github.com/universal-ctags/ctags.git--depth=1cdctagssudoapt-getinstall-yautomakeautoconfpkg-configmakegccclanglibjansson-dev#安装依赖,安装过程可能还会出现其它的未安装依赖,按照报错安装即可./autogen.sh./configurema......
  • 微信小程序11 弹窗showToast,showLoading,showModal
    弹窗是相当常用的功能,在微信里用弹窗还是挺方便的。不同于我们写网页时,对于alert,confirm这些比较简陋的原生弹窗通常要引入第三方插件来美化,微信自带的弹窗效果还不错。放一个按钮,绑定showToast方法。<buttonbind:tap="showToast">点击弹窗1</button>Js方法通用showToast......
  • post前台传参和后台接收参数
    importcom.fasterxml.jackson.databind.JsonNode;importorg.springframework.web.bind.annotation.PathVariable;importorg.springframework.web.bind.annotation.PostMapping;importorg.springframework.web.bind.annotation.RequestBody;importorg.springframework......
  • 如何提升 API-First 设计流程
    一个API-First设计应该具有可复用性、互操作性、可修改性、用户友好性、安全性、高效性、务实性,并且重要的是,与组织目标保持一致。这些基本特征将确保API能够有效地为API-First组织战略和开发模式做出贡献,在这种模式中,API可以最大限度地为业务创造价值。但如何生成这样的......
  • docker-compose快速部署elasticsearch-8.8.1集群+kibana+logstash
    安装环境centos7.98cpu16G内存vda50Gvdb100G如果您的环境是Linux,注意要做以下操作,否则es可能会启动失败用编辑工具打开文件/etc/sysctl.conf在尾部添加一行配置vm.max_map_count=262144,如果已存在就修改,数值不能低于262144修改保存,然后执行命令sudosysctl-p使其立即......
  • 【MFC】CListCtrl 如何设置单元格颜色?
    CListCtrl默认可设置的内容很少,如单元格颜色默认无法设置。若想设置单元格颜色,需要对CListCtrl进行拓展,已有老外为我们写好demo,这里对其中原理、设置方法进行一个解析。其原理是:设置CListCtrl控件的OwerDraw属性为true,然后使用GDI画图函数进行各种自定义绘制。拓展的类为CColor......
  • [论文阅读] Neural Transformation Fields for Arbitrary-Styled Font Generation
    Pretitle:NeuralTransformationFieldsforArbitrary-StyledFontGenerationaccepted:CVPR2023paper:https://openaccess.thecvf.com/content/CVPR2023/html/Fu_Neural_Transformation_Fields_for_Arbitrary-Styled_Font_Generation_CVPR_2023_paper.htmlcode:htt......