動態規劃之多狀態問題1

題目解析:

也就是給一個預約數組,選擇一些數字,讓其總和最大,但不能選擇相鄰的兩個數字

算法原理:

依舊可以根據經驗+題目

以dp[i]位置結尾時,巴拉巴拉

根據題目要求補充完整,dp[i]:選擇到i位置時,此時的最長預約時長

此時在分析,選擇到i位置時i位置是不是有兩種狀態,一種是選i,一種是不選i

也就是說,你選擇完前面的數,從0/1/2/3一直到i這個位置時,此時你面臨i選還是不選

所以第i位置的狀態又可以細分

f[i]:表示選擇到i位置時,i位置必選,此時的最長預約時長

g[i]:表示選擇到i位置是,i位置不選,此時的最長預約時長

狀態轉移方程:

f[i]:如何想?f[i]是選擇到i位置時,必選的時候的最長預約時長,那是不是證明前面的最長預約時長+num[i],那前面的最長預約時長如何找?這里由于選擇了i就不能選i-1,所以我們要找不選i-1的最長時長,那不就是g[i-1]

所以f[i]=g[i-1]+nums[i];

那g[i]:怎么想?g[i]是選擇到i位置時,i不選的最長預約時長,你不選i,那前面就可以選擇i-1或者不選i-1,所以你要在f[i-1]和g[i-1]之間選擇最大的那一個

?初始化:

根據狀態表示很容易得到

填表順序:

當然是從左往右

返回值:

?

代碼編寫 :

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/904034.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/904034.shtml
英文地址,請注明出處:http://en.pswp.cn/news/904034.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計網_可靠傳輸ARQ機制

2024.09.04:網工老姜&beokayy網工學習筆記 第5節 可靠傳輸機制 5.1 可靠傳輸5.2 ARQ機制、ARQ協議5.3 ARQ簡介(可靠傳輸)5.3.1 停止等待協議(1)無差錯情況(2)有差錯情況確認丟失確認遲到 5.…

華為eNSP:多區域集成IS-IS

一、什么是多區域集成IS-IS? 多區域集成IS-IS是一種基于中間系統到中間系統(IS-IS)協議優化的網絡架構設計,通過多區域協同、路徑優化和擴展性增強實現高效路由管理,其核心特征如下: 1、分布式架構與多區…

自定義Dockerfile,發布springboot項目

(1) 上傳jar包 把hello項目打成一個可執行的jar包 hello-1.0-SNAPSHOT.jar,把這個jar包上傳到linux中 (2) 創建文件,文件名my_hello(就是一個Dockerfile),內容如下 #1.定義父鏡像(定義當前工程依賴的環境):…

vscode源代碼管理Tab-文件右側標志(M、A 等)的含義

Git 常用標志(M、A 等)的含義 在 VSCode 的源代碼管理(Source Control)標簽頁中,文件右側顯示的 Monaco 裝飾徽章(Badge)(如 M、A 等),本質上是對 Git 文件狀態標志 的可視化呈現。…

基于 vue-flow 實現可視化流程圖

vue-flow 是一個基于 Vue.js 的強大且靈活的可視化流程圖庫,它允許開發者輕松創建交互式的流程圖、工作流圖、節點圖等。 主要特點 易于使用 :提供了簡潔的 API 和組件,開發者可以快速上手并創建復雜的流程圖。高度可定制 :支持…

【愚公系列】《Manus極簡入門》015-時間管理顧問:“商業時間規劃大師”

🌟【技術大咖愚公搬代碼:全棧專家的成長之路,你關注的寶藏博主在這里!】🌟 📣開發者圈持續輸出高質量干貨的"愚公精神"踐行者——全網百萬開發者都在追更的頂級技術博主! &#x1f…

OpenRouter:輕松集成多家AI大模型的統一接口平臺指南

想象一下,你已經在系統中集成了 OpenAI API,但現在你希望通過 Google Gemini 和 Anthropic API 擴展能力。你會為每個服務商單獨創建和管理賬戶,使用不同的 SDK,讓代碼變得更加復雜嗎?還是更傾向于只用一行代碼就能訪問…

iOS啟動優化:從原理到實踐

前言 在iOS應用開發中,啟動速度是影響用戶體驗的重要因素之一。研究表明,啟動時間每增加1秒,用戶留存率就會下降約7%。本文將深入探討iOS啟動優化的各個方面,從底層原理到具體實踐,幫助開發者打造更快的應用啟動體驗。…

洛谷 P1850 [NOIP 2016 提高組] 換教室

題目傳送門 前言 終于自己想出概率期望 d p dp dp 的狀態了,但是依舊沒能相對轉移方程。(招笑) 暴力 這題部分分和特殊情況分給的挺多的,所以先拿部分分。 一、思路 先跑一邊 F l o y d Floyd Floyd 最短路求出兩點間最短距…

基于Springboot+Vue3.0的前后端分離的個人旅游足跡可視化平臺

文章目錄 0、前言1、前端開發1.1 登錄注冊頁面1.2 首頁1.3 足跡管理1.3.1 足跡列表1.3.2 添加足跡1.4 個人中心1.4.1 足跡成就1.4.2 個人信息1.4.3 我的計劃2、后端開發2.1 用戶接口開發2.2 足跡點接口2.3 旅游計劃接口3、完整代碼資料下載0、前言 項目亮點: 前端用戶權限動態…

大數據應用開發與實戰(1)

一、Matplotlib 基礎認知 功能特性:是 Python 強大的繪圖庫,能將數據以多樣化的圖表形式呈現,涵蓋靜態、動態和交互式圖表,支持多種輸出格式,滿足不同場景下的數據可視化需求。 二Matplotlib Pyplott 函數繪圖技巧&a…

神經網絡的基本概念與深度解析——基于生物機制的仿生建模與工程實現

廣義上講,神經網絡是泛指生物神經網絡與人工神經網絡這兩個方面。所謂生物神經網絡是指由中樞神經系統(腦和脊髓)及周圍神經系統(感覺神經、運動神經、交感神經、副交感神經等)所構成的錯綜復雜的神經網絡,…

Linux53 百度網盤運行(下載devtoolset11后仍提示stdc++3.0.29缺失 計劃用docker容器隔離運行,計劃后續再看)

算了 放棄 都用到docker了 計劃先看看系統服務后續再研究吧 百度網盤運行(下載devtoolset11后仍提示stdc3.0.29缺失 計劃用docker容器隔離運行 但是由于系統服務未扎實,計劃后續再看 重新下了el7的版本 剛才已啟動成功 單輸入xlock不啟動 切換用戶也不啟動 …

高維亞空間超頻物質變壓縮技術 第27次CCF-CSP計算機軟件能力認證

很經典的dp問題: 設dp數組為f[i]前i個黃金的最小成本 遞推公式就是遍歷之前0-j的dp[j] 再加上后面這一段的成本取min 而計算后面的成本需要段體積 使用前綴和儲存體積即可 注意題目限制條件每段最大m需要遞增 所以遇到某些問題需要continue 每段內編號最大的黃…

里氏替換原則(LSP)

太好了,現在我們來講解 SOLID 中非常核心的 LSP:里氏替換原則(Liskov Substitution Principle)。 我會一步步講清楚: 什么是 LSP?為什么重要?優劣分析Python 正反例子清晰的結構圖&#xff08…

skynet.socket.limit 使用詳解

目錄 核心作用方法定義使用場景場景 1:限制接收緩沖區(防御大包攻擊)場景 2:動態調整限制(應對不同負載) 底層機制注意事項完整示例:帶流量控制的 Echo 服務總結 在 Skynet 框架中,s…

算法每日一題 | 入門-順序結構-數字反轉

數字反轉 題目描述 輸入一個不小于 且小于 ,同時包括小數點后一位的一個浮點數,例如 ,要求把這個數字翻轉過來,變成 并輸出。 輸入格式 一行一個浮點數 輸出格式 一行一個浮點數 輸入輸出樣例 #1 輸入 #1 123.4輸出 #1 …

數據庫數據去重常用方式

數據庫數據去重是一個常見的操作,常用的方式包擇包括: 使用 DISTINCT 關鍵字:在查詢數據時,可以使用 SELECT DISTINCT 來去除結果集中的重復數據。 使用 GROUP BY 語句:可以使用 GROUP BY 子句來對結果進行分組&#…

快樂數(簡單)

代碼&#xff1a; import java.util.HashSet; import java.util.Set;class Solution {public boolean isHappy(int n) {Set<Integer> seen new HashSet<>();while (n ! 1 && !seen.contains(n)) {seen.add(n);n getNext(n);}return n 1;}private int g…

Linux操作系統從入門到實戰(五)詳細講解Linux權限概念

Linux操作系統從入門到實戰&#xff08;五&#xff09;詳細講解Linux權限概念 前言一、Linux中兩種用戶1.1 超級用戶&#xff08;root&#xff09;1.2 普通用戶1.3 切換用戶命令 二、Linux權限管理2.1 文件訪問者的分類&#xff1a;誰能訪問文件&#xff1f;2.2 文件類型2.3 基…