QAQ为什么数组正常开会RE
查看原帖
QAQ为什么数组正常开会RE
539200
Trump_楼主2023/10/15 21:24

如下是会RE的

#include <iostream>
#include <cmath>
#include <cstdio>
#include <algorithm>
#include <cstring>

int N, M;
int max[100005][25];

int main() {
    scanf("%d%d", &N, &M);
    for (int i = 1; i <= N; ++ i)
        scanf("%d", &max[i][0]);
    
    for (int i = N; i >= 1; -- i) {
        for (int j = 1; j <= N - (1 << (j - 1)); ++ j) {
            max[i][j] = std::max(max[i][j - 1], max[i + (1 << (j - 1))][j - 1]);
        }
    }

    for (int i = 1; i <= M; ++ i) {
        int l, r;
        scanf("%d%d", &l, &r);
        // std::cout << l << " " << r << std::endl;
        int log = std::floor(std::log2(double(r - l + 1)));
        // std::cout << log << std::endl;
        printf("%d\n", std::max(max[l][log], max[r - (1 << log) + 1][log]));
    }
}

但是 maxmax 开到 400005400005 就不会RE,为什么啊QAQ

2023/10/15 21:24
加载中...