4462 4.曙曙献爱心

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int a[1001];
int s[1001];
int f[1001][1001];//f[i][j],i个警察,j个点,能管理的最大人数 
int main(){
    cin>>n>>m>>k;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        s[i]=s[i-1]+a[i];//前缀和 
    }
    /*
    for(int i=1;i<=n;i++){
        cout<<s[i]<<" ";
    }
    cout<<endl;
    */
    for(int i=1;i<=m;i++)//f[i][j],i个警察,j个点,能管理的最大人数 
    {
        int t=min(i*k,n);//i个警察,最多能管理i*k个集会点,但不能超过n,防止数组越界 
        for(int j=1;j<=t;j++){
            f[i][j]=s[j];
            //cout<<setw(4)<<f[i][j]; 
        }
        //超过i*k的新集会点,分两种情况
        //1.新地点不用管;2.新低点需要管(必定一个警察管最后k个点为最优) 
        for(int j=t+1;j<=n;j++){
            f[i][j]=max(f[i][j-1],f[i-1][j-k]+s[j]-s[j-k]);
            //cout<<setw(4)<<f[i][j];
        }
        //cout<<endl;
    }
    cout<<f[m][n];
    return 0;
}
相关推荐
globaldomain9 分钟前
什么是用于长距离高速传输的TCP窗口扩展?
开发语言·网络·php
MORE_7713 分钟前
leecode-合并区间-贪心算法
算法·贪心算法
沈阳信息学奥赛培训24 分钟前
#undef 指令 (C/C++)
c语言·开发语言·c++
2401_8732046526 分钟前
分布式系统安全通信
开发语言·c++·算法
Dxy12393102161 小时前
JS发送请求的方法详解
开发语言·javascript·ecmascript
sw1213892 小时前
C++中的代理模式实战
开发语言·c++·算法
難釋懷2 小时前
Lua语法入门-条件控制、函数
开发语言·junit·lua
桌面运维家2 小时前
Win10打印机共享故障排查:权限与网络配置详解
开发语言·网络·php
ballball~~2 小时前
ISP-CCM(Color Correction Matrix)
图像处理·数码相机·算法
Sunshine for you3 小时前
实时操作系统中的C++
开发语言·c++·算法