ST表
const int N(10010);
int dp[N][20];
void RMQ(int n)
{
for(int i=1;i<=n;i++)
{
scanf("%d",&dp[i][0]);
}
for(int j=1;j<20;j++)
{
for(int i=1;i<=n;i++)
{
if(i+(1<<j)-1<=n)
{
dp[i][j]=min(dp[i][j-1],dp[i+(1<<j-1)][j-1]);
}
}
}
}
int Query()
{
int l,r;
scanf("%d%d",&l,&r);
int k=log(r-l+1.0)/log(2.0);
return min(dp[l][k],dp[r-(1<<k)+1][k]);
}
线段树
本文深入探讨了ST表和线段树两种高效的数据结构,重点讲解了它们在区间查询问题上的应用。通过具体的代码实现,展示了如何利用ST表进行预处理以快速求解区间最小值问题,同时介绍了线段树的构建与查询方法。
291

被折叠的 条评论
为什么被折叠?



