Kuangbin 线性DP 最大和加强加强版

news2024/10/2 18:06:06

呃呃,一道题写了我一下午

4546. 最大和加强加强版 - AcWing题库

题意:

思路:

首先这道题没有明显的阶段,因此状态设计不能按照阶段去设计

我们按照题目给的量去设计状态:

设dp[i][j]为考虑前i个数分为j组的最大可能和

如果这样设的话,我们去考虑转移,发现转移的过程中需要分类讨论,即对于最后一个数进行分类讨论

因此还要再加一维k,表示最后一个数是不是和前一个数是连着的

最后一个数:

一、单独作为一组:

然后考虑讨论前一个数的状态:

  1. 前一个数作为单独一个组

  1. 前一个数与前前的数作为一个组

二、和前一个数作为一组:

  1. 前一个数和最后一个数作为一个组

  1. 前一个数与前前数和最后一个数作为一个组

一、

  1. dp[i][j][1]=max(dp[i][j][1],dp[i-1][j-1][0])

  1. dp[i][j][1]=max(dp[i][j][1],dp[i-1][j-1][1])

二、

  1. dp[i][j][1]=max(dp[i][j][1],dp[i-1][j][1]+a[i])

dp[i][j][0]=max(dp[i][j][0],max(dp[i-1][j-1][0],dp[i-1][j-1][1]))

Code:

#include <bits/stdc++.h>
#include <cmath>
//#define int long long
using namespace std;
using i64 = long long;
const int mxn=1e3+10;
const int mxe=1e6+10;

int n,m;
int a[mxe];
i64 dp[2][mxn][2];
void solve(){
    while(cin>>m>>n){
        for(int i=1;i<=n;i++) cin>>a[i];
        memset(dp,-0x3f,sizeof(dp));
        dp[0&1][0][0]=0;
        for(int i=1;i<=n;i++){
            dp[i&1][0][0]=0;
            for(int j=1;j<=m;j++){
                //第i个数作为单独一组:
                dp[i&1][j][1]=max(dp[(i-1)&1][j-1][0],dp[(i-1)&1][j-1][1])+a[i];
                //第i个数不作为单独一组:
                dp[i&1][j][1]=max(dp[i&1][j][1],dp[(i-1)&1][j][1]+a[i]);
                dp[i&1][j][0]=max(dp[(i-1)&1][j][0],dp[(i-1)&1][j][1]);
            }
        }
        cout<<max(dp[n&1][m][0],dp[n&1][m][1])<<'\n';
    }
}
void init(){}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int __=1;//cin>>__;
    init();
    while(__--)solve();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/380145.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

百度前端二面vue面试题指南

Vue 组件间通信有哪几种方式&#xff1f; ​ Vue 组件间通信是面试常考的知识点之一&#xff0c;这题有点类似于开放题&#xff0c;你回答出越多方法当然越加分&#xff0c;表明你对 Vue 掌握的越熟练。Vue 组件间通信只要指以下 3 类通信&#xff1a;父子组件通信、隔代组件通…

5个好用的视频素材网站

推荐五个高质量视频素材网站&#xff0c;免费、可商用&#xff0c;赶紧收藏起来&#xff01; 1、菜鸟图库 视频素材下载_mp4视频大全 - 菜鸟图库 网站素材非常丰富&#xff0c;有平面、UI、电商、办公、视频、音频等相关素材&#xff0c;视频素材质量很高&#xff0c;全部都是…

Java——异常

目录 什么是异常 异常处理主要的5个关键字 异常的体系结构 异常语法 异常的分类 异常的处理流程 异常的处理 防御式编程 异常的抛出 throw的注意事项 异常的捕获 异常声明throws try-catch捕获处理 finally 自定义异常类 throw和throws区别 什么是异常 程序在运行时出现错…

什么情况下Java程序会产生死锁?如何定位、修复?

第18讲 | 什么情况下Java程序会产生死锁&#xff1f;如何定位、修复&#xff1f; 今天&#xff0c;我会介绍一些日常开发中类似线程死锁等问题的排查经验&#xff0c;并选择一两个我自己修复过或者诊断过的核心类库死锁问题作为例子&#xff0c;希望不仅能在面试时&#xff0c;…

NOC2021年测试卷1

一、单项选择题(共15题,每题3分,共45分) 1.下列应用不能体现人工智能技术的是()。 A、使用语音输入法输入文字B、使用OCR软件从图像中识别汉字C、某软件支持在线中英文互译D、某网站自动统计歌曲下载次数2.点击绿旗执行图中的脚本,若角色的坐标为 (25, 20) ,则说出的内…

元数据管理实践数据血缘

元数据管理实践&数据血缘 什么是元数据&#xff1f;元数据MetaData狭义的解释是用来描述数据的数据&#xff0c;广义的来看&#xff0c;除了业务逻辑直接读写处理的那些业务数据&#xff0c;所有其它用来维持整个系统运转所需的信息&#xff0f;数据都可以叫作元数据。比如…

微服务一 实用篇 - 2. SpringCloud02

《微服务一 实用篇 - 2. SpringCloud02》 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! 《微服务一 实用篇 - 2. SpringCloud02》《微服务一 实用篇 - 2. SpringCloud02》1.Nacos配置管理1.1.统一配置管理1.1.1.在nacos中添加配置文件1.1.2.从微服务拉取…

GaN/氮化镓65W(1A2C)PD快充电源方案

近期美阔电子推出了一款全新的氮化镓65W&#xff08;1A2C&#xff09;PD快充充电器方案&#xff0c;该方案采用同系列控制单晶片&#xff1a;QR一次侧控制IC驱动MTCD-mode GaN FET(MGZ31N65-650V)、二次侧同步整流控制IC及PD3.0协议IC)可达到最佳匹配。 GaN/氮化镓作为第三代半…

IDEA中开发Android完整示例及APK的生成(包含用户名密码输入获取等操作)

先看看运行演示程序效果&#xff1a; 输入内容并点击确定按钮效果如下图, &#xff08;已测试传到真机中安装运行效果一模一样兼容基本所有安卓版本&#xff1a;&#xff09; 实现步骤如下&#xff1a; 1,先安装AndroidSDK 点击File->new project->Android 这个因为我…

TSBS 是什么?为什么时序数据库 TDengine 会选择它作为性能对比测试平台?

TSBS 是一个时序数据处理&#xff08;数据库&#xff09;系统的性能基准测试平台&#xff0c;提供了 IoT、DevOps 两个典型应用场景&#xff0c;它由 Timescale 开源并负责维护。作为一个性能基准测试平台&#xff0c;TSBS 具有便捷、易用、扩展灵活等特点&#xff0c;涵盖了时…

MySQL卸载教程(详细)

系列文章 C#项目–业务单据号生成器&#xff08;定义规则、自动编号、流水号&#xff09; 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/129129787 C#项目–开始日期结束日期范围计算&#xff08;上周、本周、明年、前年等&#xff09; 本文链接&…

taobao.open.account.update( Open Account数据更新 )

&#xffe5;开放平台免费API不需用户授权 Open Account数据更新 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 公共响应参数: 响应参数 点击获取key和secret 请求示例 TaobaoClient client new DefaultTaobaoClient(url, appkey, sec…

2022 年江西省职业院校技能大赛高职组“信息安全管理与评估”赛项样题

2022 年江西省职业院校技能大赛高职组 “信息安全管理与评估”赛项样题 一、 赛项信息 第一场比赛&#xff1a; 竞赛阶段 任务阶 段 竞赛任务 竞赛时 间 分值 第一阶段 任务 1 网络平台搭建 90 平台搭建与安全 任务 2 网络安全设备配置与防护 210 设备配置防护…

【调试方法】基于vs环境下的实用调试技巧

前言&#xff1a; 对万千程序猿来说&#xff0c;在这个世界上如果有比写程序更痛苦的事情&#xff0c;那一定是亲手找出自己编写的程序中的bug&#xff08;漏洞&#xff09;。作为新手在我们日常写代码中&#xff0c;经常会出现报错的情况&#xff08;好的程序员只是比我们见过…

4.排序算法之一:冒泡排序

排序算法稳定性假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;若经过排序&#xff0c;这些记录的相对次序保持不变&#xff0c;即在原序列中&#xff0c;r[i]r[j]&#xff0c;且r[i]在r[j]之前&#xff0c;而在排序后的序列中&#xff0c;r[…

操作系统权限提升(二十一)之Linux提权-环境变量劫持提权

系列文章 操作系统权限提升(十八)之Linux提权-内核提权 操作系统权限提升(十九)之Linux提权-SUID提权 操作系统权限提升(二十)之Linux提权-计划任务提权 环境变量劫持提权 环境变量劫持提权原理 PATH是Linux和类Unix操作系统中的环境变量&#xff0c;类似windows中的path环…

蓝海彤翔执行副总裁张加廷接受【联播苏州】独家专访

今年春节档&#xff0c;科幻类电影《流浪地球2》票房口碑双丰收&#xff0c;截至目前&#xff0c;累计票房已破 38 亿&#xff0c;淘票票评分 9.6 &#xff0c;影片的特效质感可以媲美国际顶尖水平。其中&#xff0c;蓝海彤翔为影片的后期制作提供了出色的渲染服务。2月21日&am…

前端学习第二阶段-第4章 移动web开发

4-1 媒体查询 01-移动WEB开发rem适配布局导读 02-rem单位 03-媒体查询语法简介 04-媒体查询案例背景变色 05-媒体查询rem实现元素动态大小变化 06-媒体查询引入资源 4-2 less介绍和使用 07-CSS的弊端 08-less简介以及安装 09-less变量 10-less编译easy less插件 11-less嵌套 12…

Linux命令-mdadm管理磁盘阵列组

文章目录​​​​​​​ 概要 一 磁盘阵列是什么&#xff1f; 二 RAID的级别 RAID 0 RAID 1 RAID 5 RAID10 三 命令介绍 四 语法格式 五 基本参数 六 参考实例 创建RAID 0磁盘阵列组 创建RAID 1磁盘阵列组 创建RAID 5磁盘阵列组 创建RAID 10磁盘阵列组…

【Flutter入门到进阶】Flutter基础篇---第一个Flutter应用

1 Flutter目录结构介绍 1.1 创建项目 flutter create flutterdemo 1.2 目录结构 1.3 结构说明 1、android、ios、linux、macos、web、windows文件夹&#xff1a;都是对应平台相关代码 2、lib文件夹&#xff1a;flutter相关代码&#xff0c;我们编写的代码就在这个文件夹 3、t…