時間限制:
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 43 1 2 8
5 3 4 6
1 0 2 3
樣例輸出
24
解題思路:
題目要求吃的蟲子最多,也就是從左上角到右下角過程中經過的數字加和最大,用動態規劃的思想,我們可以算出走到每乙個位置的時候吃了多少蟲子,最後輸出右下角最後乙個位置的蟲子數就好。
dp[i][j] = a[i][j] + max(dp[i-1][j] , dp[i][j-1])
每個位置蟲子數加上上乙個位置累加的蟲子數,上乙個位置用max進行一次判斷,取最大。
#include #include #include #include using namespace std;
int a[21][21];
int dp[21][21];
int main()
} memset(dp,0,sizeof(dp));
for(int i=1;i<=n;i++)
}cout<
nyoj171聰明的KK DP入門
時間限制 1000 ms 記憶體限制 65535 kb 難度 3描述 聰明的 kk 可移動 沙丘 變戲法 的靈感源於其獨特而雄偉的自然景觀 富於傳奇色彩的險峻沙丘。巨集偉的結構 可迴圈的建材,與大自然相得益彰。環繞一周,發現它正是從沙丘那不斷變換的形態中汲取靈感的。外形逼真到無論從哪個角度去觀察,都...
NYOJ 171 聰明的kk 填表法 普通dp
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 聰明的 kk 可移動 沙丘 變戲法 的靈感源於其獨特而雄偉的自然景觀 富於傳奇色彩的險峻沙丘。巨集偉的結構 可迴圈的建材,與大自然相得益彰。環繞一周,發現它正是從沙丘那不斷變換的形態中汲取靈感的。外形逼真到無論從哪個角度去觀察,...
聰明的kk nyoj 171 動態規劃
本題是乙個很基礎的動態規劃,與動態規劃裡的最短路徑類似。本題可以採用標記陣列,也可以不採用標記陣列。本 未採用標記陣列 本題的動規思想主要是每一步的最優解都取決於上一步的最優解,以達到整體最優的目的。如下 include define max a,b a b?a b define max n 25 ...