籃球運動(動態規劃)

題目描述

小明建造了一個籃球場,他請來了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
英文地址,請注明出處:http://en.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;來聊聊硬件學習的…