LOADING

加载过慢请开启缓存,浏览器默认开启

daily 2

2023/7/6 daily

CF 958C2

int main(){
    int n,k,p;
    cin>>n>>k>>p;
    vector<ll>a(n+1);
    for(int i=1;i<=n;++i){
        cin>>a[i];
        a[i]=(a[i]+a[i-1])%p;
    }
    vector dp(p+1,vector<ll>(n+1,-1e18));
    dp[0][0]=0;
    for(int i=1;i<=n;++i){
        for(int j=k;j>=1;--j){
            for(int mod=0;mod<p;++mod){
                dp[a[i]][j]=max(dp[a[i]][j],dp[mod][j-1]+(a[i]-mod+p)%p);
            }
        }
    }
    cout<<dp[a[n]][k]<<'\n';
}

CF 1000D