zoukankan      html  css  js  c++  java
  • st表

    #include <iostream>
    #include <algorithm>
    using namespace std;
    int a[1001];
    int st[1010][20];//st表
    void init(int n)//预处理
    {
        for (int i = 0; i < n; i++)//底层元素设置
            st[i][0] = a[i];
        for (int i = 1; (1 << i) <= n; i++)//一层一层往上处理
        {
            for (int j = 0; j + (1 << i) - 1 < n; j++)
                st[j][i] = min(st[j][i - 1],st[j + (1 << (i - 1))][i - 1]);
        }
    }
    int search(int l, int r)//O(1)查找操作
    {
        int k = (int)(log((double)(r - l + 1)) / log(2.0));
        return min(st[l][k],st[r - (1 << k) + 1][k]);
    }
    int main()
    {
        int n,m;
     cin>>n>>m;
            for (int i = 0; i < n; i++)
                cin >> a[i];
            init(n);
      for(int j=1;j<=m;j++)
      {
                int l, r;
                cin >> l >> r;
                cout << search(l,r) << endl;;
            }
        return 0;
    }
  • 相关阅读:
    React网络请求fetch之get请求
    英语学习
    人物传记
    四月
    启程
    情绪
    办公新址
    孩子大了
    幸福的生日
    hibernate---树状映射
  • 原文地址:https://www.cnblogs.com/lbssxz/p/10792885.html
Copyright © 2011-2022 走看看