<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Algorithm on BigOrangeQWQ Blog</title><link>https://blog.orangeqwq.top/zh/categories/algorithm/</link><description>Recent content in Algorithm on BigOrangeQWQ Blog</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sat, 28 Sep 2024 23:46:38 +0800</lastBuildDate><atom:link href="https://blog.orangeqwq.top/zh/categories/algorithm/index.xml" rel="self" type="application/rss+xml"/><item><title>浅说 ST表</title><link>https://blog.orangeqwq.top/zh/posts/2024-09-28-st-tabel/</link><pubDate>Sat, 28 Sep 2024 23:46:38 +0800</pubDate><guid>https://blog.orangeqwq.top/zh/posts/2024-09-28-st-tabel/</guid><description>ST 表 ST 表是利用倍增思想做预处理的一种数据结构，而预处理所指的算法自然就是动态规划。
这是一个二维的的动态规划，它的状态如下：
设 $f(i,j)$ 代表第 $i$ 个数到第 $i + 2^j - 1$ 个数的最大值，即为：$f(i, j) = \max(i,i + 2^j - 1)$
这里需要画下重点，请劳烦读者再观察一次该式，后面的推导全部基于此
$$f(i, j) = \max(i,i + 2^j - 1)$$
可以发现 $f(i, j)$ 所管辖的区间取决于 $[i, i + 2^{j - 1} - 1] , [i + 2^{j - 1},i + 2^j - 1]$ 这两个区间。
得转移公式：$f(i, j) = \max(f(i, j - 1), f(i + 2^{j - 1}, j - 1))$</description></item></channel></rss>