篮球运动(动态规划)

题目描述

小明建造了一个篮球场,他请来了2行n列的人,想让他们进行比赛。每一个人都有一个能力值,第一行分别为h11,h12,…,h1n,第二行为h21,h22,…,h2n。现在小明可以选一些人组成一个最强团队。但是选人是有规则的,因为选一个人会让附近的人都很妒忌,所以他既不会同一行里连续选择2个人,也不会同一列里的连续选择2个人。
现在他希望所选团队的能力值的之和最大,但人太多了,所以他想请聪明的你帮他解决这个问题。解决在满足规则的情况下能力值的和最大为多少?

输入

第一行输入一个整数n(1≤n≤10^5),表示每行中的学生人数。
第二行输入n个整数h[1,1],h[1,2],…,h[1,n](1≤h[1,i]≤10^9),其中h[1,i]表示第一行中的第i个学生能力值。
第三行输入n个整数h[2,1],h[2,2],…,h[2,n](1≤h[2,i]≤10^9),其中h[2,i]表示第二行中的第i个学生能力值。

输出

输出一个整数,表示所选团队中能力值之和最大。 

样例输入
【样例1】
5 
9 3 5 7 3 
5 8 1 4 5
【样例2】
3 
1 2 9 
10 1 1
【样例3】
1 
7 
4 
样例输出
【样例1】
29
【样例2】
19
【样例3】
7
提示

样例1说明:小明可以选择以下团队:9,8,7,5. 
样例2说明:小明可以选择以下团队 

思路分析

动态规划

每一列都有三种选择。dp[j][i]表示在第j列做出第i种选择后的能力值和。

(0\leqslant j\leqslant n-1,0\leqslant i\leqslant 2)

option1:不选任何一个学生。

option2:选择能力值为h1的学生。

option3:选择能力值为h2的学生。

对于第0列(0-based indexing),dp[0][0]=0,dp[0][1]=h1[0],dp[0][2]=h2[0]。

对于第j列(j>0),dp[j][0]为dp[j-1][0],dp[j-1][1],dp[j-1][2]三数之中最大的值,
dp[j][1]=h1[j]+max(dp[j-1][2],dp[j-1][0]),
dp[j][2]=h2[j]+max(dp[j-1][1],dp[j-1][0])。

代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n;
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin>>n;vector<int>h1(n),h2(n);for(int i=0;i<n;i++){cin>>h1[i];}for(int i=0;i<n;i++){cin>>h2[i];}vector<vector<ll>>dp(n,vector<ll>(3,0));dp[0][0]=0;dp[0][1]=h1[0];dp[0][2]=h2[0];for(int i=1;i<n;i++){ll a=dp[i-1][0],b=dp[i-1][1],c=dp[i-1][2],ans;ans=max(a,b);ans=max(ans,c);dp[i][0]=ans;dp[i][1]=h1[i]+max(dp[i-1][2],dp[i-1][0]);dp[i][2]=h2[i]+max(dp[i-1][1],dp[i-1][0]);}ll res;res=max(dp[n-1][0],dp[n-1][1]);res=max(res,dp[n-1][2]);cout<<res;return 0;
}

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

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

相关文章

区块链与大数据分析技术深度解析

目录 区块链与大数据分析技术深度解析 1. 引言:当区块链遇见大数据 2. 区块链数据特性 2.1 数据结构差异 2.2 区块链数据层级 3. 数据获取技术 3.1 节点直连方案 3.2 链上数据湖架构 4. 数据分析关键技术 4.1 交易图谱分析 4.2 地址聚类算法 5. 链上分析应用场景 5.1 反洗钱(A…

网络基础——网络层级

OSI七层模型OSI七层模型名称功能协议应用层直接为用户应用程序&#xff08;如浏览器、邮件客户端&#xff09;提供网络服务接口。HTTP/HTTPS&#xff08;网页浏览&#xff09;FTP&#xff08;文件传输&#xff09;SMTP/POP3&#xff08;邮件&#xff09;DNS&#xff08;域名解析…

【Redis】hash哈希,List列表

目录 一. hash哈希 1.1.常用命令 1.1.1.HSET 1.1.2.HGET 1.1.3.HEXISTS 1.1.4.HDEL 1.1.5.HKEYS 1.1.6.HVALS 1.1.7.HGETALL 1.1.8.HMGET 1.1.9.HLEN 1.1.10.HSETNX 1.1.11.HINCRBY 1.1.12.HINCRBYFLOAT 1.2. 内部编码 1.3. 使用场景 1.4…

MySQL相关概念和易错知识点(4)(分组查询、连接查询、合并查询、子查询)

目录1.分组查询&#xff08;1&#xff09;聚合函数&#xff08;2&#xff09;group by子句&#xff08;3&#xff09;having2.连接查询&#xff08;1&#xff09;内连接&#xff08;笛卡尔积&#xff09;&#xff08;2&#xff09;外连接&#xff08;3&#xff09;内外连接的区…

【Python 高频 API 速学 ①】

一、为什么先学它们&#xff1f; 在真实代码里&#xff0c;90 % 的 bug 都源于「拿到的是 A 类型&#xff0c;却当成 B 类型用」。 把「不确定」变成「确定」——这就是类型转换三兄弟的核心价值。二、三兄弟速览函数一句话定位常见输入失败会怎样int(x)把 x 变成整数‘42’, 3…

FFmpeg 视频旋转信息处理:3.4 vs 7.0.2

1. 概述 FFmpeg 在处理视频旋转信息方面经历了重要的架构变化。本文档详细对比了 FFmpeg 3.4 和 7.0.2 在封装&#xff08;muxing&#xff09;和解封装&#xff08;demuxing&#xff09;视频旋转信息时的差异&#xff0c;并提供兼容性解决方案。文档内容由Claude Sonnet 4辅助撰…

《Resolving tissue complexity by multimodal spatial omics modeling with MISO》

概念多模态空间组学&#xff1a;简单来说&#xff0c;就是同时研究生物组织里的多种分子信息&#xff08;比如基因表达、蛋白质、代谢物、表观遗传标记等&#xff09;&#xff0c;而且这些信息还带有空间位置。MISO&#xff08;MultI-modal Spatial Omics&#xff09;是这篇论文…

三阶段提交(3PC)协议的全面解析:理论、机制与实践局限性

第一部分&#xff1a;非阻塞提交的起源&#xff1a;从两阶段提交&#xff08;2PC&#xff09;的缺陷到三阶段提交&#xff08;3PC&#xff09;的构想在分布式计算领域&#xff0c;确保跨多个独立节点执行的事务的完整性是一项至关重要的挑战。这些节点或站点可能在地理上分散&a…

衰减器的计算

pi型衰减器&#xff0c;如下图所示。 它适用于输入输出阻抗匹配的情况下&#xff0c;还能进行衰减。 不过当输入输出阻抗不匹配时&#xff0c;2个R1也会不相等。 已知特性阻抗Z0&#xff0c;衰减比AVin/Vout&#xff0c;怎么计算R1、R2&#xff1f; 1、电阻分压。 Vout Vi…

Day02 员工管理,分类管理

新增员工需求分析和设计产品原型&#xff1a;接口设计&#xff1a;本项目约定&#xff1a;管理端发出的请求&#xff0c;统一使用 /admin 作为前缀用户端发出的请求&#xff0c;统一使用 /user 作为前缀数据库表设计&#xff1a;代码开发根据新增员工接口设计对应的 DTO&#x…

[SC]SystemC 常见的编译/语法错误与解法(三)

SystemC 常见的编译/语法错误与解法(三) 摘要:下面按“现象/编译信息 → 成因 → 解决方案”的结构,归纳 SystemC 建模在 SoC 验证中常见的“编译期/语法层面”问题,并补充如何根据编译信息快速定位与如何在流程上避免这些问题。 一、SystemC 常见的编译/语法错误与…

06-docker容器常用命令

文章目录一.docker容器相关指令概述二.生产环境中常用的 docker容器相关指令1.创建容器(create)2.查看已创建的容器(ps&#xff0c;ls&#xff0c;list)3.运行一个已创建的容器(start)4.停止一个正在运行的容器(stop)5.重启容器(restart)6.创建并启动一个容器(run&#xff0c;等…

Xiphos Q8 摄像头板 高性能图像处理板

我们的高性能图像处理板设计用于与具有两个 Camera Link 接口&#xff08;2x Base 或 1x Medium&#xff09;的 Q8 混合处理器卡配合使用。接口&#xff1a; 2个Camera Link接口 4个SpaceWire接口 4个USB 2.0主端口 串行接口和 GPIO 多个 Vcc 输出&#xff08;5.0、3.3 和 1.8V…

Rocky Linux 10 搭建 NFS 服务详细步骤

1.NFS描述 NFS&#xff0c;全称为Network File System&#xff0c;即网络文件系统&#xff0c;是一种分布式文件系统协议&#xff0c;允许一个系统在网络上与他人共享目录和文件。通过NFS&#xff0c;用户和程序可以像访问本地文件一样访问远端系统上的文件。以下是NFS的一些主…

Android MediaMetadataRetriever取视频封面,Kotlin(1)

Android MediaMetadataRetriever取视频封面&#xff0c;Kotlin&#xff08;1&#xff09; <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE&qu…

qt的元对象系统详解

Qt 的元对象系统&#xff08;Meta-Object System&#xff09;&#xff0c;这是 Qt 框架最核心、最强大的特性之一。 1.什么是 Qt 的元对象系统&#xff1f; Qt 的元对象系统&#xff08;Meta-Object System&#xff09;是 Qt 在标准 C 基础上扩展的一套机制&#xff0c;它为 C …

Nginx 性能优化与动态内容处理

一、压缩功能 实验目的&#xff1a;通过启用 Nginx 的 Gzip 压缩功能&#xff0c;对传输的文件&#xff08;如 HTML、日志等&#xff09;进行压缩&#xff0c;减少网络传输数据量&#xff0c;提升用户访问速度&#xff08;尤其适用于带宽有限的场景&#xff09;&#xff0c;同…

ComfyUI——舒服地让大模型为我所用

主页&#xff1a;ComfyUI | 用AI生成视频、图像、音频 https://github.com/comfyanonymous/ComfyUI 安装环境 我的环境是mac&#xff0c;芯片为M4pro。首先从github中下载工程&#xff0c;clone失败就直接下载zip压缩包。在model文件夹中&#xff0c;可以看到很多大名鼎鼎的…

【Visual Studio】使用VS调试(Debug)

确保在Debug模式下而不是Release 打断点(break point) 直接在有代码的行前单击&#xff0c;会出现红色的点(再次单击会取消)&#xff1b;或者光标停留在某行&#xff0c;按F9 这意味着程序当执行到这一行时会终止 在打完断点后点击”本地Windows调试器“或者按F5 往下翻会有代码…

B2.0:对硬件学习的一些个人心得感悟

对于硬件学习&#xff0c;所有人都会迷茫的找不到学习的路径和方向&#xff0c;都是自我摸索或者老师带领或者其他情况&#xff0c;而我倒是没有机会接触到现实的老师带我领进这个门&#xff0c;自然走的弯路比较多&#xff0c;所以引申出这篇文章&#xff0c;来聊聊硬件学习的…