DP入門 聰明的kk

2021-07-26 19:29:20 字數 985 閱讀 3292

題目來自nyist第171題,如下: 描述

聰明的「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」吃掉最多的蟲子數。

經典遞推,dp[i][j] =  max ( dp[i][j-1],dp[i-1][j] ) + dp[i][j], 適於初學練手。

**如下:

#include #define max(a,b)  (a>b?a:b)

int dp[20][20];

int main()

printf("%d ",dp[i-1][j-1]);

}

有一點,#define中一定要打括號,不然會變成 

else	(dp[i][j] = max(dp[i][j-1],dp[i-1][j]) ) + dp[i][j];
導致出錯。

動態規劃 聰明的kk

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

聰明的kk 動態規劃

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

NYOJ 171 聰明的kk 填表法 普通dp

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