单调队列,sub1全错,sub2全对
  • 板块P1725 琪露诺
  • 楼主Qianmo_su
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/10/12 01:31
  • 上次更新2024/10/12 14:21:58
查看原帖
单调队列,sub1全错,sub2全对
615931
Qianmo_su楼主2024/10/12 01:31

我真的红温了啊

#include <bits/stdc++.h>
//#define int long long
using namespace std;

const int N = 3e5+10,INF = 0x3f3f3f3f;
int a[N],f[N],n,l,r,ans=-INF;
deque<int> q;

signed main()
{
    cin >> n >> l >> r;
    for(int i=0;i<=n;i++) cin >> a[i];
    memset(f,-INF,sizeof(f));
    f[0] = 0;
    for(int i=l;i<=n;i++)
    {
        while(!q.empty() && f[q.back()]<=f[i]) q.pop_back();
        q.push_back(i-l);
        while(!q.empty() && q.front()+r<i) q.pop_front();
        f[i] = f[q.front()]+a[i];
        if(i+r>n) ans = max(ans,f[i]);
    }
    cout << ans;
    return 0;
}
2024/10/12 01:31
加载中...