91分MLE求助
查看原帖
91分MLE求助
765847
lovely_codingcow楼主2023/10/6 17:33

记录:

记录

代码:

#include <iostream>

#define INF 2147483647

using namespace std;

int m, n, p, x, y, a[100009], tree[400009];

void build(int node, int l, int r) {
    if (l == r) {
        tree[node] = a[l];
        return;
    }
    int mid = (l + r) >> 1;
    build(node << 1, l, mid);
    build((node << 1) + 1, mid + 1, r);
    tree[node] = min(tree[node << 1], tree[(node << 1) + 1]);
}

void update(int node, int l, int r, int id, int x) {
    if (l == r) {
        tree[node] = x;
        return;
    }
    int mid = (l + r) >> 1;
    if (id <= mid) {
        update(node << 1, l, mid, id, x);
    } else {
        update((node << 1) + 1, mid + 1, r, id, x);
    }
    tree[node] = min(tree[node << 1], tree[(node << 1) + 1]);
}

int query(int node, int l, int r, int L, int R) {
    if (L <= l && R >= r) {
        return tree[node];
    }
    int mid = (l + r) >> 1;
    return min(mid >= L ? query(node << 1, l, mid, L, R) : INF,
               mid < R ? query((node << 1) + 1, mid + 1, r, L, R) : INF);
}

int main() {
    cin >> m >> n;
    for (int i = 1; i <= m; i++) {
        cin >> a[i];
    }
    build(1, 1, n);
    for (int i = 1; i <= n; i++) {
        cin >> x >> y;
        cout << query(1, 1, n, x, y) << " ";
    }
}
2023/10/6 17:33
加载中...