前言
RMQ: 数组 a0, a1, a2,..., an-1, 中求任意区间 a[i+1], a[i+2], ..., a[i+k] 的最小值
LCA: 求二叉树中两个节点的最低公共祖先
本文将证明这两个问题可以相互归约为另一个问题。
证明
先通过一个简单的例子来说明问题。见下图:
求 [7 2 8 6] 的最小值...
分类:
其他好文 时间:
2014-07-22 23:01:35
阅读次数:
271
题目来源:POJ 2019 Cornfields
题意:求正方形二维区间最大最小值的差
思路:直接二维ST搞 试模版而已
#include
#include
#include
using namespace std;
const int maxn = 255;
int dp[maxn][maxn][8][8];
int dp2[maxn][maxn][8][8];
int a[...
分类:
其他好文 时间:
2014-05-25 10:21:07
阅读次数:
246
ST
int dp[maxn][20];
int a[maxn];
void RMQ_init(int n)
{
int i,j,k;
for(i = 1; i <= n; i++)
dp[i][0] = a[i];
k = (int) (log((double)n + 0.2) / log(2.0));
for(j = 1; j <= k; j++)
for(i =...
分类:
其他好文 时间:
2014-05-25 09:45:08
阅读次数:
227
题意:给一个整数序列(可能有负数),求最短的连续序列使得序列之和大于等于整数x;
解法:第一种是On的复杂度:
我们要的是sum[j]-sum[i]>=x,如果有两个决策j = sum[j'],那么j就是没用的。即维护一个sum[j]递增序列。然后每次可以二分查找,但是这里有个特点就是要得到最近的,可以同时维护一个left指针,left指针用于跟进更...
分类:
其他好文 时间:
2014-05-15 03:20:26
阅读次数:
303
I Hate ItTime Limit: 9000/3000 MS
(Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s):
33726Accepted Submission(s): 13266Problem...
分类:
其他好文 时间:
2014-05-10 19:43:25
阅读次数:
335
bzoj1067 SCOI2007降雨量 RMQ模板题 细节较多...
分类:
其他好文 时间:
2014-05-07 05:23:08
阅读次数:
266