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 } 
Ac
原文地址:https://www.cnblogs.com/For-Miku/p/11339239.html