ST算法

int n,m,a[maxn],f[maxn][20];
void rmq()
{
	for(int i=1;i<=n;i++)f[i][0]=a[i];
	for(int i=1;i<=floor(log(n)/log(2));i++)
	 for(int j=1;j<=n-(1<<i)+1;j++)
      f[j][i]=max(f[j][i-1],f[j+(1<<(i-1))][i-1]);
}
int query(int x,int y)
{
	int z=floor(log(y-x+1)/log(2));
	return max(f[x][z],f[y-(1<<z)+1][z]);
}
int main()
{
	freopen("input.txt","r",stdin);
	freopen("output.txt","w",stdout);

        rmq();
	return 0;
}

  

posted @ 2015-10-27 11:28  HTWX  阅读(103)  评论(0编辑  收藏  举报