用树状数组求区间最值

注意bit数组存放的是一个区间的最值。更新最值的时候要传递更新。查找的时候也要注意。如果已经不是在一个区间段上了,应该和num[]比。

program zhongcheng2;
var n,m,i,p,x,y:longint;
    a:array[0..100000]of longint;
    bit:array[0..100000]of longint;
function min(a,b:longint):longint;
begin
 if a=x then
    begin
     ans:=min(ans,bit[y]);
     y:=y-lowbit(y);
    end
   else
    begin
     ans:=min(ans,a[y]);
     y:=y-1;
    end;
  end;
 query:=ans;
end;

procedure inset(x,y:longint);//插入
begin
 while x&

你可能感兴趣的:(数据结构,经典算法程序,树状数组,区间最值)