P1816 忠诚
---------------------------------------
链接:P1816
---------------------------------------
st表的一道模板题
链接:P1816
---------------------------------------
st表的一道模板题而已
你都可以用P3865稍微一改水过去
---------------------------------------
就是这么简单
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 using namespace std; 5 int st[1000001][30]; 6 int maxn; 7 int m,n; 8 int x; 9 int l,r; 10 int main(){ 11 scanf("%d%d",&m,&n); 12 for(int i=1;i<=m;++i){ 13 scanf("%d",&st[i][0]); 14 } 15 for(int i=1;i<=25;++i) 16 for(int j=1;j+(1<<i)<=m;++j){ 17 st[j][i]=min(st[j][i-1],st[j+(1<<(i-1))][i-1]); 18 } 19 for(int i=1;i<=n;++i){ 20 scanf("%d%d",&l,&r); 21 int k=log2(r-l+1); 22 int ans=min(st[l][k],st[r-(1<<k)+1][k]); 23 printf("%d ",ans); 24 } 25 return 0; 26 }