聰明的kk
時間限制: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
- 來源
- 第三屆河南省程序設計大賽
ps: 動態規劃中一個經典題目。
#include<cstdio>
#include<cstring>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
#define INF 0x3f3f3f3f
int a[25][25],dp[25][25];
int main()
{
int n,m,i,j;
while(scanf("%d %d",&n,&m) != EOF)
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
scanf("%d",&a[i][j]);
for(i=0;i<=n;i++)
a[i][0]=0;
for(i=0;i<=m;i++)
a[0][i]=0;
int ans=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
dp[i][j] =a[i][j] + max(dp[i-1][j], dp[i][j-1]);
}
}
printf("%d\n",dp[n][m]);
}
return 0;
}