码迷,mamicode.com
首页 > 编程语言 > 详细

RMQ问题&ST算法

时间:2020-03-11 19:34:24      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:amp   neu   log   span   const   pre   char   printf   max   

 

 1 #include<bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 const int N = 1e5 + 5;
 6 
 7 int f[N][30],a[N];
 8 
 9 int read(){
10     int x=0,flag=1;
11     char ch=getchar();
12     while(!isdigit(ch)){ if(ch == -) flag = -1;ch = getchar();}
13     while(isdigit(ch)){ x = (x<<3) + (x<<1) + (ch^48); ch = getchar();}
14     return x * flag;
15 }
16 
17 int main(){
18     
19     int n = read();
20     int m = read();
21     //³õʼ»¯ 
22     for(int i=1; i<=n; i++) f[i][0] = read();
23     //½¨Á¢ST±í 
24     int maxn = log(n) / log(2) + 1;//ÉϽç 
25     for(int j=1; j<maxn; j++){
26         for(int i=1; i<=n+1-(1<<j); i++){
27             f[i][j] = max(f[i][j-1],f[i+(1<<j-1)][j-1]);
28         }
29     }
30     //²éѯ 
31     for(int i=1; i<=m; i++){
32         int l = read();
33         int r = read();
34         int k = log(r-l+1) / log(2);//Ͻç
35         printf("%d\n",max(f[l][k],f[r+1-(1<<k)][k]));
36     } 
37     return 0;
38 }

 例题:[模板]ST表

    [USACO07JAN]Balanced Lineup G

 

RMQ问题&ST算法

标签:amp   neu   log   span   const   pre   char   printf   max   

原文地址:https://www.cnblogs.com/zhangqiling/p/12464617.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!