聰明的kk 動態規劃

2021-07-31 03:18:05 字數 1299 閱讀 9270

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:3 描述

聰明的「kk」

可移動「沙丘」變戲法 的靈感源於其獨特而雄偉的自然景觀——富於傳奇色彩的險峻沙丘。巨集偉的結構、可迴圈的建材,與大自然相得益彰。環繞一周,發現它正是從沙丘那不斷變換的形態中汲取靈感的。外形逼真到無論從哪個角度去觀察,都能清楚地辨識出沙丘的特徵。

它「坡面」高達20公尺,微風吹來,你是否感覺到沙的流動?用手去觸碰,卻發現原來是「魔術戲法」。它表面的不鏽鋼面板呈現出一種富於變幻的色彩,從不同角度觀察,呈現不同色澤,由此來模仿流動沙丘的光感。

走進第三展廳有乙個超大的螢幕,通過奇妙的特效,讓觀眾猶如親身來到浩瀚的沙漠。更為奇妙的是,只見乙個小動物「kk」正從沙漠區域(矩形)的左上角沿著向右或向下的方向往右下角跑去。kk太聰明了,它居然能在跑的過程中會選擇吃掉盡可能多的蟲子線路。

你知道它吃掉多少蟲子嗎?

輸入第一行:n m (1≤n m≤20 0≤xij≤500(i=1,2„.n, j=1,2„,m)

)表示沙漠是乙個n*m的矩形區域

接下來有n行:每行有m個正整數,xi1 xi2 ……xim 表示各位置中的蟲子數(單個空格隔開)

假設「kk」只能向右走或向下走。

輸出輸出有乙個整數, 表示「kk」吃掉最多的蟲子數。

樣例輸入

3 4

3 1 2 8

5 3 4 6

1 0 2 3

樣例輸出

24
解題思路:如果在這一步想吃到最多的蟲子,只和他的上方的一步,和左方的一步有關係;所以他的動態轉移方程就是dp[i][j]=max(dp[i-1][j],dp[i][j-1])//選擇最大的蟲子數  +  這一步的蟲子;

解決動態規劃問題:一般分為下面幾個步驟

1.描述最優的結構(也就是狀態);例如這個他的最優狀態就是他的上方或者左方選擇乙個最大的蟲子數。

2.遞迴定義最優解的值(列出狀態轉移方程);例如這個     dp[i][j]=max(dp[i-1][j],dp[i][j-1])//選擇最大的蟲子數  +  這一步的蟲子;

3.按自底向上的方式計算最優解的值;

4.由計算出的結果構造乙個最優解。

下面是這個題的**:

#include long long dp[21][21];

int max(int a, int b)

int main()

printf("%d\n", dp[n][m]);

} return 0;

}

動態規劃 聰明的kk

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 聰明的 kk 可移動 沙丘 變戲法 的靈感源於其獨特而雄偉的自然景觀 富於傳奇色彩的險峻沙丘。巨集偉的結構 可迴圈的建材,與大自然相得益彰。環繞一周,發現它正是從沙丘那不斷變換的形態中汲取靈感的。外形逼真到無論從哪個角度去觀察,...

DP入門 聰明的kk

題目來自nyist第171題,如下 描述 聰明的 kk 可移動 沙丘 變戲法 的靈感源於其獨特而雄偉的自然景觀 富於傳奇色彩的險峻沙丘。巨集偉的結構 可迴圈的建材,與大自然相得益彰。環繞一周,發現它正是從沙丘那不斷變換的形態中汲取靈感的。外形逼真到無論從哪個角度去觀察,都能清楚地辨識出沙丘的特徵。它...

聰明的kk nyoj 171 動態規劃

本題是乙個很基礎的動態規劃,與動態規劃裡的最短路徑類似。本題可以採用標記陣列,也可以不採用標記陣列。本 未採用標記陣列 本題的動規思想主要是每一步的最優解都取決於上一步的最優解,以達到整體最優的目的。如下 include define max a,b a b?a b define max n 25 ...