zoukankan      html  css  js  c++  java
  • ST表算法笔记

    【模板】洛谷P3865

    #include<cstdio>
    #include<string>
    #include<cstdlib>
    #include<cmath>
    #include<iostream>
    #include<cstring>
    #include<set>
    #include<queue>
    #include<algorithm>
    #include<vector>
    #include<map>
    #include<cctype>
    #include<stack>
    #include<sstream>
    #include<list>
    #include<assert.h>
    #include<bitset>
    #include<numeric>
    #define debug() puts("++++")
    #define gcd(a,b) __gcd(a,b)
    #define lson l,m,rt<<1
    #define rson m+1,r,rt<<1|1
    #define fi first
    #define se second
    #define pb push_back
    #define sqr(x) ((x)*(x))
    #define ms(a,b) memset(a,b,sizeof(a))
    #define sz size()
    #define be begin()
    #define pu push_up
    #define pd push_down
    #define cl clear()
    #define lowbit(x) -x&x
    #define all 1,n,1
    #define mod(x) ((x)%M)
    #define pi acos(-1.0)
    #define rep(i,x,n) for(int i=(x); i<(n); i++)
    using namespace std;
    typedef long long ll;
    typedef unsigned long long ULL;
    typedef pair<int,int> P;
    const int INF = 0x3f3f3f3f;
    const int maxn = 1e6+10;
    const double eps = 1e-8;
    const int dx[] = {-1,1,0,0,1,1,-1,-1};
    const int dy[] = {0,0,1,-1,1,-1,1,-1};
    int dir[2]={-1,1};
    const int mon[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    const int monn[] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    const ll M = 2147493647;
    int n,m,q,f[maxn][21];
    int l,r;
    void init()
    {
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            scanf("%d",&f[i][0]);
        int up=(int)(log(n)/log(2));
        for(int j=1;j<=up;j++)
        {
            for(int i=1;i+(1<<j)-1<=n;i++)
            {
                f[i][j]=max(f[i][j-1],f[i+(1<<(j-1))][j-1]);
            }
        }
        while(m--)
        {
            scanf("%d%d",&l,&r);
            int k=log2(r-l+1);
            printf("%d
    ",max(f[l][k],f[r-(1<<k)+1][k]));
        }
    }
    int main()
    {
        init();
        //printf("up=%d
    ",(int)(log(n)/log(2)));
    }
    
    
  • 相关阅读:
    idea自定义servlet模板
    jsp基础-指令,内置对象,动作,EL表达式,JSTL技术
    cookie和session
    HttpServletRequest
    IO字符流
    IO字节流
    递归
    File 类
    JDBC数据库连接
    Map接口
  • 原文地址:https://www.cnblogs.com/Roni-i/p/9517053.html
Copyright © 2011-2022 走看看