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;
}
相关推荐
五_谷_丰_登3 小时前
平衡二叉树(AVL)讲解二
数据结构·c++
程序员贺加贝3 小时前
报表大 IN 优化:一条 product_profile 超大 IN SQL 背后的报表任务治理
算法·性能优化
麻花20134 小时前
Win10、win11清理C盘的bat文件内容
开发语言
露天赏雪4 小时前
掘金小册样章
java·开发语言·人工智能·ai编程
知无不研4 小时前
std::function在使用时遇到的问题
c++·算法·st·function
一晌小贪欢4 小时前
python-第15天:Python 列表推导式
开发语言·python·excel·数据可视化·python办公
Java后端的Ai之路4 小时前
17、Python - 观察者模式
开发语言·人工智能·python·观察者模式·外观模式
薛定e的猫咪4 小时前
(IEEE Transactions 2025)自适应元强化学习动态柔性作业车间调度框架
网络·人工智能·算法
码场老菜鸟4 小时前
C++ 指针的深度理解与应用
java·c++·算法
OPEN-F4 小时前
C++并发编程:条件变量与原子操作
java·开发语言·c++