【Kuangbin区间DP】奶牛零食

news2024/9/20 9:40:01

4558. 奶牛零食 - AcWing题库

题意:

写了Kuangbin的三道DP,三道都不会QwQ

是不是该remake了....

思路:

一开始我天真的以为那个题单全是线性DP,然后我就自然而然往线性DP的方向上想了呜呜

我设 dp[i][j]表示阶段 i ,且这个阶段 去掉的数为 j 的最大收益

然后我是这样转移的:

因为第 i 个阶段,我们去枚举状态

这个位置 j 一定在 [1,i] U [n-i+1,n]里面

dp[i][j]=dp[i-1][j-1]+i*a[j]  j属于[1,i]

dp[i][j]=dp[i-1][j+1]+i*a[j]  j属于[n-i+1,n]

写完还觉得这样非常的对,其实阶段就有问题啊

区间DP的阶段是以区间作为阶段的,而线性DP的阶段是以线性为阶段的

这道题,我们发现一个区间的子问题一定是它的子区间,那肯定是区间DP

然后状态转移就比较易错了

拿掉a[l]之前的收益是该轮的收益+区间[l+1][r]的收益

拿掉a[r]之前的收益是该轮的收益+区间[l][r-1]的收益

Code:

#include <bits/stdc++.h>
using namespace std;
const int mxn=2e3+10;
int n;
int a[mxn],dp[mxn][mxn];
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int len=1;len<=n;len++){
        for(int l=1;l+len-1<=n;l++){
            int r=l+len-1;
            dp[l][r]=max(dp[l+1][r]+a[l]*(n-(r-l)),dp[l][r-1]+a[r]*(n-(r-l)));
        }
    }
    cout<<dp[1][n]<<'\n';
}

总结:

需要有点辨识度吧,以区间为状态那肯定是区间DP

然后写状态转移方程的时候,一定要按照定义来写,不然很容易写寄

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

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

相关文章

你可以不用Git,但不能不会Git(一)概述

目录 一.什么是Git 二.为什么要使用Git 三.Git和SVN对比 四.Git工作流程 五.Git下载与安装 一.什么是Git Git历史 很多人都知道&#xff0c;林纳斯托瓦兹在1991年创建了开源的Linux&#xff0c;从此&#xff0c;Linux系统不断发展&#xff0c;已经成为最大的服务器系统…

Unity:从入门到入行【全面总结,建议收藏】

史上最全干货系列 一、unity的安装与使用 1.unity安装资源 方法一&#xff1a; 通过http://unity.cn官网进行下载&#xff0c;详细教程可见下方链接。 Unity新手入门&#xff1a;新手如何安装Unity_哔哩哔哩_bilibili​www.bilibili.com/video/BV1Yb4y1f7zK?spm_id_from333…

10_2、Java基本语法之注解(Annotation)的使用

一、注解的理解 1、jdk5.0新增 2、在JavaSE中&#xff0c;注解的使用目的比较简单&#xff0c;例如标记过时的功能&#xff0c;忽略警告等。在JavaEE/Android中注解占据了更重要的角色&#xff0c;例如用来配置应用程序的任何切面&#xff0c;代替JavaEE旧版中所遗留的…

小程序项目-后台交互(首页)

目录 一&#xff0c;后台准备 配置数据源 整合mybatis 二&#xff0c;准备前端的首页的数据 封装request 会议展示 一&#xff0c;后台准备 先建一个新的项目&#xff0c;建好后导入相关的pom依赖&#xff0c;将 以下的一些工具类也准备好&#xff0c;工具类可参考前面…

Django学习16 -- ModelAdmin options

参考&#xff1a; Django Documentation Release 4.1.4.dev20221130072229&#xff0c;ModelAdmin options&#xff0c;P988 ~ P1007 &#xff08;补充更新。。。。。。&#xff09;Django学习7 -- 添加个人应用&#xff08;自定义应用页面优化&#xff09;Django学习8 -- 添加…

form表单的基本使用

1、什么是表单 表单在网页中主要负责数据采集功能。HTML中的<form>标签&#xff0c;就是用于采集用户输入的信息&#xff0c;并通过<form>标签的提交操作&#xff0c;把采集到的信息提交到服务器端进行处理。 2、表单的组成部分 <form> <input type"…

c#入门-objtct的方法

声明类型的基类 c#中的类都继承自object类&#xff0c;包括静态类。 静态类只是无法手动指定继承类型&#xff0c;而声明静态类时的关键字class&#xff0c;已经让他派生自object类了。 结构类型继承自ValueType类&#xff0c;而ValueType继承自object类。 数组继承自Array类…

【JavaScript】本地存储(localStorage、sessionStorage、cookie)

文章目录【JavaScript】本地存储(localStorage、sessionStorage、cookie)一. 概念二. 本地存储特性三. 会话级存储四. 持久性存储五. cookie六. 本地存储的区别(1) cookie和storage的区别(2) localStorage和sessionStorage的区别七. 案例&#xff1a;记住用户名【JavaScript】本…

ansible(第二天)

第二章&#xff1a;模块介绍 1.Ansible的三个命令模块 command shell raw 应尽量避免使用这三个模块来执行命令&#xff0c;因为其他模块大部分都是幂等性的&#xff0c;可以自动进行更改跟踪。 command、shell、raw不具备幂等性。注&#xff1a; 幂等性&#xff1a;简单来…

【2 - 随机森林 - 案例部分:随机森林在乳腺癌数据上的调参】菜菜sklearn机器学习

课程地址&#xff1a;《菜菜的机器学习sklearn课堂》_哔哩哔哩_bilibili 第一期&#xff1a;sklearn入门 & 决策树在sklearn中的实现第二期&#xff1a;随机森林在sklearn中的实现第三期&#xff1a;sklearn中的数据预处理和特征工程第四期&#xff1a;sklearn中的降维算法…

vue3笔记案例——Suspense使用之骨架屏

文章目录skeleton组件sync组件Suspense使用skeleton组件 示例图 代码 <template><div class"sk"><div class"sk-2"><div class"sk-2-1"></div><div></div></div><hr><div class&qu…

亚马逊云科技 Build On -轻松搭建咖啡点单系统

【前言】 1、什么是Build On&#xff1f; Build On是亚马逊团队基于亚马逊云服务开发&#xff0c;打造的一系列可快速上手的实操性活动。通过通俗易懂的场景案例、简单快捷的开发路径&#xff0c;参与者可快速理解目标任务涉及的相关知识&#xff0c;同时对亚马逊云服务具备一…

【回答问题】ChatGPT上线了!推荐30个以上比较好的意图识别模型

【回答问题】ChatGPT上线了&#xff01;推荐30个以上比较好的意图识别github源码&#xff1f; 好的&#xff0c;这里列出 30 个相对比较优秀的意图识别 GitHub 源码&#xff1a; DeepPavlov Rasa Snips spaCy OpenAI GPT OpenAI DialogFlow ChatterBot Botpress Amazon Lex M…

ArcGIS基础实验操作100例--实验41提取道路面中心线

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 高级编辑篇--实验41 提取道路面中心线 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1…

2022,我遭遇的那些小事

前言 2022&#xff0c;总感觉一晃眼就过去了&#xff0c;不知不觉自己坚持更文已经一周年了。回顾这一周年&#xff0c;无论是在技术成长上还是职业发展上&#xff0c;都有了许多新的体会。 裁员风波 还记得是四、五月份的一个上午&#xff0c;原本还在紧张的加班赶项目&…

educoder数据结构与算法 队列 第2关 实现一个链接存储的队列

本文已收录于专栏 &#x1f332;《educoder数据结构与算法_大耳朵宋宋的博客-CSDN博客》&#x1f332; 目录 任务描述 相关知识 编程要求 测试说明 AC_Code 任务描述 本关任务&#xff1a;实现 step2/CLnkQueue.cpp 中的CLQ_IsEmpty、CLQ_Length、CLQ_In和CLQ_Out四个操…

论文阅读和复现:去除PPG运动伪影的IEEE论文

论文阅读和代码复现&#xff1a; 《Combining Nonlinear Adaptive Filtering and Signal Decomposition for Motion Artifact Removal in Wearable Photoplethysmography》 基本介绍&#xff1a; 由于手腕运动造成的噪声&#xff1a;运动伪影&#xff0c;使得PPG方法的心率监…

shell-流程控制之条件判断

1、判断当前磁盘剩余空间是否有20G&#xff0c;如果小于20G&#xff0c;则将报警邮件发送给管理员&#xff0c;每天检查一次磁盘剩余空间。 补充&#xff1a;20G20971520kb [rootcotenos day06]# pwd /root/shell/day06 [rootcotenos day06]# vim free_men.sh #!/bin/bash f…

spring boot启动环境的配置与更改(dev,local,pro)包含单元测试环境

文件类型介绍 properties 该文件是一种key-value的格式&#xff0c;配置文件的特点是&#xff0c;它的Key-Value一般都是String-String类型的&#xff0c;因此我们完全可以用Map<String, String>来表示它。 用Properties读取配置文件非常简单。Java默认配置文件以.pro…

elasticsearch 7.9.3知识归纳整理(二)之es基本原理及使用kibana操作es的常见命令

es基本原理及使用kibana操作es的常见命令 一、es的基本原理与基础概念 1.1 倒排索引 倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值&#xff0c;而是由属性值来确定记录…