80分求助

P1440 求m区间内的最小值

zhangjiting @ 2023-03-08 18:39:13

#include <bits/stdc++.h>
using namespace std;
const int N=2000005;
int n,a[N],q,l,r;
int dp[N][21];
inline void initmin() {
    for(int i=1;i<=n;++i)   dp[i][0]=a[i];
    for(int j=1;(1<<j)<=n;++j)
        for(int i=1;i+(1<<j)<=n+1;++i)
            dp[i][j]=min(dp[i][j-1],dp[i+(1<<(j-1))][j-1]);
}
inline int RMQmin(int l,int r) {
    int cnt=log2(r-l+1);
    return min(dp[l][cnt],dp[r-(1<<cnt)+1][cnt]);
}
int main() {
    ios::sync_with_stdio(false);
    cin>>n>>q;
    for(int i=1;i<=n;++i)   cin>>a[i];
    initmin();
    cout<<0<<endl;
    for(int i=2;i<=n;i++){
        cout<<RMQmin(max(i-q,1),i-1)<<endl;
    }
    return 0;
}

2 和 10 MLE 记录


by mazihang2025 @ 2023-03-08 18:48:23

167MB 的空间能不 MLE 吗


by orange2023 @ 2023-07-25 17:54:07

这题就是不能用ST


|