代码求调
查看原帖
代码求调
602124
ztrztr楼主2023/9/2 13:07

求调:

#include <bits/stdc++.h>

using namespace std;
/*
*/
int n, m, a[100005], dp[100005][25];
int main() {
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    
    cin >> n >> m;
    for (int i = 1; i <= n; i ++) {
        cin >> a[i];
        dp[i][0] = a[i];
    }
    for (int i = 1; i <= 21; i ++) {
        for (int j = 1; j + (1 << i) - 1 <= n; j ++) {
            dp[j][i] = max(dp[j][i - 1], dp[j + 1 << (i - 1)][i - 1]);
        }
    }
    while (m --) {
        int x, y; cin >> x >> y;
        int tmp = __lg(y - x + 1);
        cout << max(dp[x][tmp], dp[y - (1 << tmp) + 1][tmp]) << "\n";
    }
    return 0;
}

样例输出

9
9
7
7
9
7
7
9
2023/9/2 13:07
加载中...