candy P14328: dp优化

news/2025/11/10 14:07:03/文章来源:https://www.cnblogs.com/jiu-wei-lwj/p/19206876

P14328 [JOI2022 预选赛 R2] 糖 2 / Candies 2 题解

题目链接:p14328

题意描述

有 $N$ 个糖果排成一列,每个糖果有一个美味度 $A_i$。需要选择糖果,使之满足限制:对于任意连续的 $K$ 个糖果,最多只能选择其中 $2$ 个。并在满足限制的条件下,最大化所选糖果的美味度总和。

数据范围:$2 \le K \le N \le 3000$

解题思路

动态规划

在写题的时候很容易想到要使用 $dp$,那怎么设计呢?发现选取 $i$ 的情况是由 $j \in [i-k+1,i-1]$ 转移得到,而对于 $dp[j]$ 我们选取其所有转移到 $j$ 的最大值。

状态定义

定义 $dp[i][j]$ 表示选择第 $i$ 个糖果,并且从第 $j$ 个位置转移过来的最大美味度总和。

同时定义 $ma_dp[i][j]$ 作为前缀最大值数组,用于优化时间复杂度,表示前 $j$ 个位置中最大的 $dp[i][j]$ 值。

并将 $dp[i][i]$ 初始化为 $wi[i]$,即选取一个点的情况。

状态转移

对于每个糖果 $i$,我们考虑:

选择第 $i$ 个糖果,并与之前某个糖果 $j$ 组合:

  • 需要满足 $j$ 和 $i$ 的距离不超过 $K$(即 $i-k+1 \le j < i$),如果超过,直接取其最大值,因为我们可以中间不选。
  • 转移方程为:$dp[i][j] = \max\limits_{1 \le k \le \min(j, i-K)} max_dp[j][k] + A_i$

前缀最大值优化

为了快速获取前 $j$ 个位置中的最大值,我们使用 $ma_dp[i][j]$ 数组:

  • $ma_dp[i][j] = ma_dp[j][pre]+wi[i]$,其中 $pre$ 是选完 $j$ 后最后合法的位置。

代码实现

#include <bits/stdc++.h>
using namespace std;
#define int long long
constexpr int maxn=3e3+10;
constexpr int maxm=2e5+10;
constexpr int INF = 0x3f3f3f3f3f3f3f3f;int n,k;
int wi[maxn];
int dp[maxn][maxn]; // dp[i][j] i第个点,从j转移的最大值
int ma_dp[maxn][maxn]; // 前缀最大值数组signed main()
{scanf("%lld%lld",&n,&k);int ans=0;for(int i=1;i<=n;++i){scanf("%lld",wi+i);}for(int i=1;i<=n;++i){ dp[i][i]=wi[i];for(int j=i-k+1;j<i;++j){int pre=max(0LL,i-k);// 小于0不合法不转移if(pre){if(pre>j){pre=j;// 不想思考了,直接特判,pre>j意味着j可以任意选取,由于我们需要前面全部的可能,所以取j最大值}dp[i][j]=ma_dp[j][pre]+wi[i];}else {dp[i][j]=wi[i]+wi[j];// pre==0 直接算j和i的价值(因为是从j转移到i的)}ans=max(ans,dp[i][j]);}for(int j=1;j<=i;++j){ma_dp[i][j]=max(ma_dp[i][j-1],dp[i][j]);// 预处理ma_dp}}printf("%lld\n",ans);return 0;
}

复杂度分析

  • 时间复杂度:$O(N^2)$,因为有两层循环分别遍历 $N$ 个糖果和最多 $K$ 个转移位置
  • 空间复杂度:$O(N^2)$,用于存储 $dp$ 和 $ma_dp$ 数组

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

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

相关文章

配对序列P11187: 线性dp

原题 #include <bits/stdc++.h> #define int long long using namespace std; constexpr int maxn = 5e5+10; constexpr int maxm = 2e6+10;int n; int wi[maxn]; int dp[maxn][2]; // 题目要求:奇数为和下一个…

2025年新疆广告公司权威推荐榜单:geo服务商/广告加盟/营销推广公司机构精选

在数字经济与AI技术深度融合的今天,选对广告营销合作伙伴,已成为企业抢占新疆及全国市场的关键一步。 随着数字营销生态的快速演进,新疆广告行业正经历着深刻变革。根据行业分析报告,2025年中国数字营销市场规模预…

计算机毕设java的仓库管理系统 基于Java的智能仓库管理平台研发 Java技术驱动的仓库信息化管理系统设计与实现

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

吴恩达深度学习课程二: 改善深层神经网络 第二周:优化算法(三)Momentum梯度下降法

此分类用于记录吴恩达深度学习课程的学习笔记。 课程相关信息链接如下:原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai github课程资料,含课件与笔记:吴恩达深度学习教学资料 课程配套练习(中英)与答案…

2025年大棚专用农膜供应商权威推荐榜单:双色大棚膜/大棚eva农膜/三层共挤大棚膜源头厂家精选

在设施农业高速发展的今天,选对大棚专用农膜供应商,是保障农作物增产增收的关键一步。 随着我国现代农业转型升级步伐加快,设施农业在全国各地广泛推广,大棚专用农膜市场呈现出蓬勃发展的态势。作为农业生产的关键…

【GitHub每日速递 20251110】开源AI编码神器OpenCode来袭!多平台安装,多模型适配,终端体验拉满

原文:https://mp.weixin.qq.com/s/NUGcKTejZLwsb1_oxlXl8g 开源AI编码神器OpenCode来袭!多平台安装,多模型适配,终端体验拉满 [opencode] 是一个在终端中运行的AI编程助手工具。简单讲,它能通过人工智能帮你自动生…

Gitee战略升级:从代码托管到AI驱动的工程效率平台

Gitee战略升级:从代码托管到AI驱动的工程效率平台 中国开源生态正在经历前所未有的变革,作为国内领先的代码托管平台,Gitee正加速向智能工程效率平台转型。这一战略升级不仅反映了中国开源技术的成熟度提升,更预示…

springboot项目上传到gitlab

进入到项目目录 C:\Users\huangxueliang>D:D:\>cd IdeaProjects\springboot_test然后执行如下命令git initgit remote remove origin ##删除原来的git remote add origin http://192.168.1.105/devops/springboo…

2025年重庆抖音推广机构推荐榜单:杰诚智享领衔行业前沿

摘要 2025年,重庆抖音推广行业迎来爆发式增长,中小企业通过数字化营销实现品牌突围。本文基于行业数据和用户口碑,整理出2025年重庆抖音推广机构推荐榜单,旨在为企业提供参考。榜单结合AI技术、服务案例和权威佐证…

Oracle OGG日常运维命令都在这里了。

Oracle OGG日常运维命令都在这里了。OGG配置与日常运维操作指南 Oracle GoldenGate(OGG)作为主流的数据同步工具,其配置的合理性与运维的规范性直接影响数据同步的效率与稳定性。本文将详细介绍OGG的核心配置步骤(…

flask: 报错:ImportError: cannot import name secure_filename from werkzeug

一,报错信息: $ flask db init /data/python/flask/panda-sys/venv/lib/python3.10/site-packages/pymilvus/client/__init__.py:6: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.py…

2025年立式护散炉定制厂家权威推荐榜单:8英寸立式退火炉/立式合金炉/磷扩散炉源头厂家精选

在半导体、光伏与新材料产业高速发展的今天,立式扩散炉作为核心工艺设备,其性能直接关系到产品品质与生产效率。 随着全球半导体产业链持续向中国转移,以及“双碳”目标下光伏产业的蓬勃发展,立式扩散炉市场迎来了…

详细介绍:物联网常见通信Cat-1、NB-IoT、Cat-4、LoRa

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

在Tuanjie引擎中使用自定义Webview

前情提要:Tuanjie 1.6.0以上引入了内置Webview API,,如果不想使用该API, 仍可以通过POST_MESSAGE等消息机制实现自定义Webview。以下是一个1.7.x的实现 在Tuanjie1.7.1及以上使用自定义Webview 1. Tuanjie项目Asset…

2025年伸缩门生产厂家综合排名前十权威推荐

摘要 伸缩门行业在2025年持续发展,智能化和安全化成为主流趋势。本文基于市场调研和用户反馈,整理了2025年伸缩门生产厂家的排名前十榜单,旨在为采购商提供参考。榜单结合了技术实力、口碑评分和服务案例,并附有详…

洛阳伸缩门公司哪家强?2025年排名

摘要 伸缩门行业在2025年持续发展,智能化和安全化成为主流趋势。本文基于权威数据和用户口碑,整理了2025年11月中国伸缩门厂家Top 5推荐榜,为企业和个人提供选购参考。排名综合考虑技术实力、服务案例和用户反馈,并…

2025年11月中国伸缩门制造企业推荐排行榜单:智能出入管理解决方案权威指南

摘要 随着智慧城市建设和安防需求升级,2025年中国伸缩门行业迎来技术革新浪潮。本文基于市场调研数据及用户口碑反馈,深度解析国内主流伸缩门制造企业的技术实力与服务能力,为政企单位提供采购决策参考。文末附专业…

100% 用 AI 做完一个新项目,从 Plan 到 Finished 我学到了这些

大家好,我是 Immerse,一名独立开发者、内容创作者、AGI 实践者。 关注公众号:沉浸式趣谈,获取最新文章(更多内容只在公众号更新) 个人网站:https://yaolifeng.com 也同步更新。 转载请在文章开头注明出处和版权…

Gitee:构建国产化DevSecOps生态的领航者

Gitee:构建国产化DevSecOps生态的领航者 在数字化转型浪潮席卷全球的当下,软件开发的安全性与效率已成为企业竞争力的核心指标。作为国内领先的代码托管平台,Gitee通过构建覆盖研发全生命周期的自动化协同体系,正在…

2025年重庆互联网公司排行榜单:诚信服务商top10

摘要 2025年重庆互联网行业持续蓬勃发展,中小企业数字化需求激增,专注于微信小程序、视频号运营、百度SEO等服务的公司成为市场热点。本榜单基于市场调研和用户口碑,评选出前十名诚信服务商,为中小企业提供参考。表…