WA第11个点,求助/kel
查看原帖
WA第11个点,求助/kel
156353
GoldenFishX楼主2021/5/31 19:33

rt

#include <bits/stdc++.h>
#define max(a, b) (a > b ? a : b)

using namespace std;

const int MAXN = 1e5 + 5;
const int MAXJ = 14;

int log_2[MAXN];
int a[MAXN][MAXJ];

int main() {
  ios_base::sync_with_stdio(NULL);
  cin.tie(nullptr), cout.tie(nullptr);
  int n, m, l, r;
  cin >> n >> m;
  for (int i = 1, x = 0; i <= n; i++) {
    cin >> a[i][0];
    x += (i >= 1 << (x + 1));
    log_2[i] = x; //预处理log
  }

  for (int i = 1; (1 << i) <= n; i++) {
    for (int j = 1; j + (1 << i) - 1 <= n; j++) {
      a[j][i] = max(a[j][i - 1], a[j + (1 << (i - 1))][i - 1]);
    }
  }

  for (; m--;) {
    cin >> l >> r;
    cout << max(a[l][log_2[r - l + 1]], a[r - (1 << log_2[r - l + 1]) + 1][log_2[r - l + 1]]) << '\n';
  }
  return 0;
}
2021/5/31 19:33
加载中...