国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【動(dòng)態(tài)規(guī)劃專欄】專題二:路徑問(wèn)題--------6.地下城游戲

這篇具有很好參考價(jià)值的文章主要介紹了【動(dòng)態(tài)規(guī)劃專欄】專題二:路徑問(wèn)題--------6.地下城游戲。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

本專欄內(nèi)容為:算法學(xué)習(xí)專欄,分為優(yōu)選算法專欄,貪心算法專欄,動(dòng)態(tài)規(guī)劃專欄以及遞歸,搜索與回溯算法專欄四部分。 通過(guò)本專欄的深入學(xué)習(xí),你可以了解并掌握算法。

??博主csdn個(gè)人主頁(yè):小小unicorn
?專欄分類:動(dòng)態(tài)規(guī)劃專欄
??代碼倉(cāng)庫(kù):小小unicorn的代碼倉(cāng)庫(kù)??
??????關(guān)注我?guī)銓W(xué)習(xí)編程知識(shí)

題目來(lái)源

本題來(lái)源為:

Leetcode 174. 地下城游戲

題目描述

惡魔們抓住了公主并將她關(guān)在了地下城 dungeon 的 右下角 。地下城是由 m x n 個(gè)房間組成的二維網(wǎng)格。我們英勇的騎士最初被安置在 左上角 的房間里,他必須穿過(guò)地下城并通過(guò)對(duì)抗惡魔來(lái)拯救公主。

騎士的初始健康點(diǎn)數(shù)為一個(gè)正整數(shù)。如果他的健康點(diǎn)數(shù)在某一時(shí)刻降至 0 或以下,他會(huì)立即死亡。

有些房間由惡魔守衛(wèi),因此騎士在進(jìn)入這些房間時(shí)會(huì)失去健康點(diǎn)數(shù)(若房間里的值為負(fù)整數(shù),則表示騎士將損失健康點(diǎn)數(shù));其他房間要么是空的(房間里的值為 0),要么包含增加騎士健康點(diǎn)數(shù)的魔法球(若房間里的值為正整數(shù),則表示騎士將增加健康點(diǎn)數(shù))。

為了盡快解救公主,騎士決定每次只 向右 或 向下 移動(dòng)一步。

返回確保騎士能夠拯救到公主所需的最低初始健康點(diǎn)數(shù)。
【動(dòng)態(tài)規(guī)劃專欄】專題二:路徑問(wèn)題--------6.地下城游戲,算法專欄,# 動(dòng)態(tài)規(guī)劃算法專欄,動(dòng)態(tài)規(guī)劃,游戲,算法,c++

算法原理

1.狀態(tài)表示

經(jīng)驗(yàn)+題目要求
【動(dòng)態(tài)規(guī)劃專欄】專題二:路徑問(wèn)題--------6.地下城游戲,算法專欄,# 動(dòng)態(tài)規(guī)劃算法專欄,動(dòng)態(tài)規(guī)劃,游戲,算法,c++

對(duì)于本題而言就是:

dp[i][j]表示:從[i,j]位置的出發(fā),到達(dá)終點(diǎn),所需要的最低初始健康點(diǎn)數(shù)

2.狀態(tài)轉(zhuǎn)移方程

分兩種情況:
【動(dòng)態(tài)規(guī)劃專欄】專題二:路徑問(wèn)題--------6.地下城游戲,算法專欄,# 動(dòng)態(tài)規(guī)劃算法專欄,動(dòng)態(tài)規(guī)劃,游戲,算法,c++

因此狀態(tài)方程為:
【動(dòng)態(tài)規(guī)劃專欄】專題二:路徑問(wèn)題--------6.地下城游戲,算法專欄,# 動(dòng)態(tài)規(guī)劃算法專欄,動(dòng)態(tài)規(guī)劃,游戲,算法,c++
為什么最后還要和1取Max呢?這是為了防止最后結(jié)果是個(gè)負(fù)數(shù)

dp[i][j]=min(dp[i+1][j],dp[i][j+1])-d[i][j];
dp[i][j]=max(1,dp[i][j]);

3.初始化

看圖分析很容易就知道應(yīng)該如何初始化。

【動(dòng)態(tài)規(guī)劃專欄】專題二:路徑問(wèn)題--------6.地下城游戲,算法專欄,# 動(dòng)態(tài)規(guī)劃算法專欄,動(dòng)態(tài)規(guī)劃,游戲,算法,c++

4.填表順序

從下往上填每一行,每一行從右往左

5.返回值

dp[0][0]

代碼實(shí)現(xiàn)

動(dòng)態(tài)規(guī)劃的代碼基本就是固定的四步:

1.創(chuàng)建dp表
2.初始化
3.填表
4.返回值

本題完整代碼實(shí)現(xiàn):

class Solution 
{
public:
    int calculateMinimumHP(vector<vector<int>>& d) 
    {
        int m=d.size(),n=d[0].size();
        //創(chuàng)建dp表
        vector<vector<int>> dp(m+1,vector<int>(n+1,INT_MAX));
        //初始化
        dp[m][n-1]=dp[m-1][n]=1;
        //填表
        for(int i=m-1;i>=0;i--)
        {
            for(int j=n-1;j>=0;j--)
            {
                //狀態(tài)轉(zhuǎn)移方程
                dp[i][j]=min(dp[i+1][j],dp[i][j+1])-d[i][j];
                dp[i][j]=max(1,dp[i][j]);
            }
        }
        return dp[0][0];
    }
};

時(shí)間復(fù)雜度:O(MxN)
空間復(fù)雜度:O(MxN)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-837143.html

到了這里,關(guān)于【動(dòng)態(tài)規(guī)劃專欄】專題二:路徑問(wèn)題--------6.地下城游戲的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【動(dòng)態(tài)規(guī)劃】【 矩陣】【逆向思考】C++算法174地下城游戲

    【動(dòng)態(tài)規(guī)劃】【 矩陣】【逆向思考】C++算法174地下城游戲

    視頻算法專題 動(dòng)態(tài)規(guī)劃匯總 矩陣 逆向思考 惡魔們抓住了公主并將她關(guān)在了地下城 dungeon 的 右下角 。地下城是由 m x n 個(gè)房間組成的二維網(wǎng)格。我們英勇的騎士最初被安置在 左上角 的房間里,他必須穿過(guò)地下城并通過(guò)對(duì)抗惡魔來(lái)拯救公主。 騎士的初始健康點(diǎn)數(shù)為一個(gè)正整數(shù)

    2024年02月03日
    瀏覽(22)
  • 【動(dòng)態(tài)規(guī)劃專欄】專題一:斐波那契數(shù)列模型--------2.三步問(wèn)題

    【動(dòng)態(tài)規(guī)劃專欄】專題一:斐波那契數(shù)列模型--------2.三步問(wèn)題

    本專欄內(nèi)容為:算法學(xué)習(xí)專欄,分為優(yōu)選算法專欄,貪心算法專欄,動(dòng)態(tài)規(guī)劃專欄以及遞歸,搜索與回溯算法專欄四部分。 通過(guò)本專欄的深入學(xué)習(xí),你可以了解并掌握算法。 ??博主csdn個(gè)人主頁(yè):小小unicorn ?專欄分類:動(dòng)態(tài)規(guī)劃專欄 ??代碼倉(cāng)庫(kù):小小unicorn的代碼倉(cāng)庫(kù)??

    2024年02月21日
    瀏覽(27)
  • 動(dòng)態(tài)規(guī)劃——地下城游戲

    動(dòng)態(tài)規(guī)劃——地下城游戲

    leetcode在線oj題——地下城游戲 惡魔們抓住了公主并將她關(guān)在了地下城 dungeon 的 右下角 。地下城是由 m x n 個(gè)房間組成的二維網(wǎng)格。我們英勇的騎士最初被安置在 左上角 的房間里,他必須穿過(guò)地下城并通過(guò)對(duì)抗惡魔來(lái)拯救公主。 騎士的初始健康點(diǎn)數(shù)為一個(gè)正整數(shù)。如果他的

    2024年02月11日
    瀏覽(28)
  • 【學(xué)會(huì)動(dòng)態(tài)規(guī)劃】地下城游戲(10)

    【學(xué)會(huì)動(dòng)態(tài)規(guī)劃】地下城游戲(10)

    目錄 動(dòng)態(tài)規(guī)劃怎么學(xué)? 1. 題目解析 2. 算法原理 1. 狀態(tài)表示 2. 狀態(tài)轉(zhuǎn)移方程 3. 初始化 4. 填表順序 5. 返回值 3. 代碼編寫(xiě) 寫(xiě)在最后: 學(xué)習(xí)一個(gè)算法沒(méi)有捷徑,更何況是學(xué)習(xí)動(dòng)態(tài)規(guī)劃, 跟我一起刷動(dòng)態(tài)規(guī)劃算法題,一起學(xué)會(huì)動(dòng)態(tài)規(guī)劃! 題目鏈接:174. 地下城游戲 - 力扣(Lee

    2024年02月14日
    瀏覽(25)
  • 【Leetcode每日一題】 動(dòng)態(tài)規(guī)劃 - 地下城游戲(難度???)(61)

    【Leetcode每日一題】 動(dòng)態(tài)規(guī)劃 - 地下城游戲(難度???)(61)

    1. 題目解析 題目鏈接:174. 地下城游戲 這個(gè)問(wèn)題的理解其實(shí)相當(dāng)簡(jiǎn)單,只需看一下示例,基本就能明白其含義了。 2.算法原理 一、狀態(tài)表定義 在解決地下城游戲問(wèn)題時(shí),我們首先需要對(duì)狀態(tài)進(jìn)行恰當(dāng)?shù)亩x。一個(gè)直觀的想法是,從起點(diǎn)開(kāi)始,到達(dá)[i, j]位置時(shí)所需的最低初始

    2024年04月29日
    瀏覽(19)
  • 【動(dòng)態(tài)規(guī)劃上分復(fù)盤(pán)】這是你熟悉的地下城游戲嗎?

    【動(dòng)態(tài)規(guī)劃上分復(fù)盤(pán)】這是你熟悉的地下城游戲嗎?

    本文講解關(guān)于動(dòng)態(tài)規(guī)劃思路的兩道題目。 1.確定狀態(tài)表示(確定dp數(shù)組的含義) 2.確定狀態(tài)轉(zhuǎn)移方程(確定dp的遞推公式) 3.確定如何初始化(初始化要保證填表正確) 4.確定遍歷順序 5.返回值 點(diǎn)我直達(dá)~ 根據(jù)題目可知,每一個(gè)位置都對(duì)應(yīng)這三種情況: (d[i][j]由題目給出。)

    2024年02月12日
    瀏覽(23)
  • 【動(dòng)態(tài)規(guī)劃專欄】專題三:簡(jiǎn)單多狀態(tài)dp--------3.刪除并獲得點(diǎn)數(shù)

    【動(dòng)態(tài)規(guī)劃專欄】專題三:簡(jiǎn)單多狀態(tài)dp--------3.刪除并獲得點(diǎn)數(shù)

    本專欄內(nèi)容為:算法學(xué)習(xí)專欄,分為優(yōu)選算法專欄,貪心算法專欄,動(dòng)態(tài)規(guī)劃專欄以及遞歸,搜索與回溯算法專欄四部分。 通過(guò)本專欄的深入學(xué)習(xí),你可以了解并掌握算法。 ??博主csdn個(gè)人主頁(yè):小小unicorn ?專欄分類:動(dòng)態(tài)規(guī)劃專欄 ??代碼倉(cāng)庫(kù):小小unicorn的代碼倉(cāng)庫(kù)??

    2024年03月22日
    瀏覽(25)
  • 【每日易題】Leetcode上Hard難度的動(dòng)態(tài)規(guī)劃題目——地下城游戲的實(shí)現(xiàn)

    【每日易題】Leetcode上Hard難度的動(dòng)態(tài)規(guī)劃題目——地下城游戲的實(shí)現(xiàn)

    君兮_的個(gè)人主頁(yè) 即使走的再遠(yuǎn),也勿忘啟程時(shí)的初心 C/C++ 游戲開(kāi)發(fā) Hello,米娜桑們,這里是君兮_,博主最近一直在鉆研動(dòng)態(tài)規(guī)劃算法,最近在Leetcode上刷題的時(shí)候遇到一個(gè)Hard難度的動(dòng)態(tài)規(guī)劃題,今天就借此機(jī)會(huì)來(lái)給大家分享一下我對(duì)這個(gè)題目的一些看法和解題思路(放心,

    2024年02月05日
    瀏覽(26)
  • 算法沉淀 —— 動(dòng)態(tài)規(guī)劃篇(路徑問(wèn)題)

    算法沉淀 —— 動(dòng)態(tài)規(guī)劃篇(路徑問(wèn)題)

    幾乎所有的動(dòng)態(tài)規(guī)劃問(wèn)題大致可分為以下5個(gè)步驟,后續(xù)所有問(wèn)題分析都將基于此 1.、狀態(tài)表示:通常狀態(tài)表示分為基本分為以下兩種,其中更是以第一種為甚。 以i為結(jié)尾 ,dp[i] 表示什么,通常為代求問(wèn)題(具體依題目而定) 以i為開(kāi)始 ,dp[i]表示什么,通常為代求問(wèn)題(具

    2024年04月17日
    瀏覽(20)
  • 【算法】動(dòng)態(tài)規(guī)劃中的路徑問(wèn)題

    【算法】動(dòng)態(tài)規(guī)劃中的路徑問(wèn)題

    君兮_的個(gè)人主頁(yè) 即使走的再遠(yuǎn),也勿忘啟程時(shí)的初心 C/C++ 游戲開(kāi)發(fā) Hello,米娜桑們,這里是君兮_,如果給算法的難度和復(fù)雜度排一個(gè)排名,那么動(dòng)態(tài)規(guī)劃算法一定名列前茅。今天,我們通過(guò)由簡(jiǎn)單到困難的兩道題目帶大家學(xué)會(huì)動(dòng)態(tài)規(guī)劃中的路徑問(wèn)題 好了廢話不多說(shuō),開(kāi)始我

    2024年02月05日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包