void ST_prework() {
for (int i = 1; i <= n; i++) f[i][0] = a[i];
int t = log(n) / log(2) + 1;
for (int j = 1; j < t; j++)
for (int i = 1; i <= n - (1<<j) + 1; i++)
f[i][j] = max(f[i][j-1], f[i + (1<<(j-1))][j-1]);
}
int ST_query(int l, int r) {
int k = log(r - l + 1) / log(2);
return max(f[l][k], f[r - (1<<k) + 1][k]);
}
信息竞赛进阶指南--区间最值问题的ST算法
转载文章标签 i++ 题解 编程语言 学习 文章分类 数据结构与算法 人工智能
-
区间最值问题之ST表算法
区间最值问题之ST表算法1.ST算法思想ST(Sparse Table)算法是一种用于解决RMQ(Range Minimu
算法 数据结构 java python 动态规划 -
算法竞赛进阶指南 0x53 区间DP
线性DP:从初态开始,沿着阶段的扩张,向某一个方向扩张,知道求出答案。区间DP是
算法 c++ 图论 动态规划 i++ -
ST表(模板)「 查询区间最值 」
The Water ProblemHDU - 5443 「 第一部分nlogn预处理 第二部分O(1)询问 」#include <iostream
ST 模板 #include c++ i++ -
[算法竞赛进阶指南]货舱选址
来源: 《算法竞赛进阶指南》, 模板题算法标签 排序,贪心题目描述在
排序算法 贪心算法 ci i++ #include -
【算法竞赛进阶指南】金字塔(区间DP+dfs序)
原题链接题意:给定序列表示dfs一棵树遍历得到的顺序,每次经过一个节点都输出该节点对应的字母,求有多
算法 数据结构 dfs 动态规划 子树 -
算法竞赛进阶指南——链表学习笔记
AcWing\136. 邻值查找题面这道题目让我想起了平衡二叉树,可以使用map进行实现链
算法 链表 学习 ci #include -
信息竞赛进阶指南--KMP算法(模板)
next[1] = 0;for (int i...
i++ 题解 编程语言 学习 -
信息竞赛进阶指南--Tire树
// 假设字符串由小写字母构成int tri...
字符串 题解 编程语言 学习 -
信息竞赛进阶指南--离散化
// 离散化void discrete(...
离散化 i++ 题解 编程语言 学习 -
信息竞赛进阶指南--枚举方法
// 递归实现指数型枚举vector cho...
i++ 递归实现 汇编指令 模拟计算机 递归 -
信息竞赛进阶指南--搜索相关(模板)
ACM常用模板合集// 深度优先遍历框架vo...
i++ 子树 连通块 dfs序 广度优先遍历