#46011: ans c++


yp11351205@yphs.tp.edu.tw (709-36黃泊霖)

學校 : 臺北市私立延平高級中學
編號 : 276130
來源 : [203.72.178.1]
最後登入時間 :
2025-05-08 14:32:02
g424. PF.抱ㄌㄌ | From: [203.72.178.1] | 發表日期 : 2025-05-08 15:04

#include <iostream>
#include <deque>
using namespace std;
#define int long long
int dp[100010]={};
int pre[100010]={};
signed main(){
    ios::sync_with_stdio(0),cin.tie(0);
    int n,k;
    cin>>n>>k;
    deque<pair<int,int>> dq;
    for(int i=1;i<=n;i++)cin>>pre[i],pre[i]+=pre[i-1];
    dq.push_back({0,0});
    for(int i=1;i<=n;i++){
        while(dq.size()&&i-dq.front().first>k)dq.pop_front();
        dp[i] = pre[i] - dq.front().second;
        dp[i] = max(dp[i],dp[i-1]);
        int pb = pre[i]-dp[i-1];
        while(dq.size()&&dq.back().second>=pb)dq.pop_back();
        dq.push_back({i,pb});
    }
    cout<<dp[n];
}
 
ZeroJudge Forum