문제에 Luogu P2034 디지털 솔루션을 선택

꼬꼬댁

단조로운 큐 최적화 \ (DP \) 첫 번째 질문의는의 결과는 매우 이상한 일에 사망했다. . .

얼굴 질문

얼굴 질문

해결책

정의 (dp_i \) \을 그 전 고려 된 상기 \ (나는 \) 수, 최대 값이 선택 될 수있다.

연속 옵션의 최대주기 때문에 \ (K \) A는, 우리가있다 (\ [IK, I-1 ] \) 브레이크 포인트의 선택 \ (J를 \) , 요점은 다음 시간을 선택하지 않은 것을 나타낸다 (\을 dp_i = \ 분 (J-dp_ {} -sum_j. 1) + SUM [I] \) .

그럼 우리가 발견 \ (dp_i \) 엔드 포인트 \ (\ I) 의 경우 의무적으로 모든 경우의 수 없습니다 대표, 그래서 (dp_i, dp_을 {I-1 } \) \ 테이크 \을 (\ 최대 \) 그것은 고려하기 전에 포함 할 수 있도록 \ (내가 \) 두의 모든 경우에.

암호

#include<bits/stdc++.h>
#define del(a,i) memset(a,i,sizeof(a))
#define ll long long
#define inl inline
#define il inl void
#define it inl int
#define ill inl ll
#define re register
#define ri re int
#define rl re ll
#define mid ((l+r)>>1)
#define lowbit(x) (x&(-x))
#define INF 0x3f3f3f3f
using namespace std;
template<class T>il read(T &x){
    int f=1;char k=getchar();x=0;
    for(;k>'9'||k<'0';k=getchar()) if(k=='-') f=-1;
    for(;k>='0'&&k<='9';k=getchar()) x=(x<<3)+(x<<1)+k-'0';
    x*=f;
}
template<class T>il print(T x){
    if(x/10) print(x/10);
    putchar(x%10+'0');
}
ll mul(ll a,ll b,ll mod){long double c=1.;return (a*b-(ll)(c*a*b/mod)*mod)%mod;}
it qpow(int x,int m,int mod){
    int res=1,bas=x%mod;
    while(m){
        if(m&1) res=(res*bas)%mod;
        bas=(bas*bas)%mod,m>>=1;
    }
    return res%mod;
}
const int MAXN = 1e5+5;
int n,k,val,q[MAXN],l=1,r;
ll sum[MAXN],dp[MAXN],ans;
int main()
{
//  freopen(".in","r",stdin);
//  freopen(".out","w",stdout);
    read(n),read(k);
    for(ri i=1;i<=n;++i) read(val),sum[i]=sum[i-1]+val;
    dp[1]=sum[1],q[++r]=1;
    for(ri i=2;i<=k;++i){
        dp[i]=sum[i];
        while(l<=r&&dp[q[r]-1]-sum[q[r]]<=dp[i-1]-sum[i]) --r;
        q[++r]=i;
    }
    for(ri i=k+1;i<=n;++i){
        while(l<=r&&q[l]<i-k) ++l;
        dp[i]=sum[i]+dp[q[l]-1]-sum[q[l]];
        while(l<=r&&dp[q[r]-1]-sum[q[r]]<=dp[i-1]-sum[i]) --r;
        q[++r]=i;
        dp[i]=max(dp[i],dp[i-1]);
    }
    print(dp[n]);
    return 0;
}

개요

제 단조 곤약 큐 최적화와 트랙 \합니다 (DP \) 표제의 아니라 최종 하나.

이 질문은 방을 요청하는 것입니다 \ (Dalao \) \ (@ jklover \) 만에 심사를?

그래서 그들은 아 연료를 보급 할 수있는 능력을 강화한다! ! !

추천

출처www.cnblogs.com/TheShadow/p/11415173.html