社区讨论

100ptsWA on hack #1

P1725琪露诺参与者 2已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@mhj00l4o
此快照首次捕获于
2025/11/03 18:29
4 个月前
此快照最后确认于
2025/11/03 18:29
4 个月前
查看原帖
100pts
cout 0 on hack #1
CPP
#include <bits/stdc++.h>
using namespace std;
const int N = 4e5 + 1e2;
int n,l,r,a[N],j,ans,f[N];
int q[N],last = -1,first = 0;
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    cin >> n >> l >> r;
    for(int i = 0;i <= n;i ++) cin >> a[i];
    for(int i = 1;i <= n;i ++) f[i] = INT_MIN;
    for(int i = 1;i <= n + r;i ++) {
        while(i - j >= l && j < i) {
            if(f[j] != INT_MIN) {
                while(f[q[last]] <= f[j] && first <= last) last --;
                q[++ last] = j;
            }
            j ++;
        }
        while(i - q[first] > r && first <= last) first ++;
        if(first <= last) f[i] = a[i] + f[q[first]];
    }
    // for(int i = 1;i < n + r;i ++) cout << f[i] << ' ';
    // cout << '\n';
    for(int i = n + 1;i <= n + r;i ++) ans = max(ans,f[i]);
    cout << ans << '\n';
    return 0;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...