#(二次元マップDP)羅区P1508 Likecloud-は、食べて、食べて食べて(/ユニバーサル増加を - )

タイトル説明

消化器系は、比較的開発されているので、特定の期間リーバッファローの真っ只中で、それは最近、飢餓の状態にありました。彼は大きなダイニングテーブルの側にあるとき、クラスのある日、彼は空腹めまいだと同じように、目が突然、長方形の巨大な大きなダイニングテーブルの(<= 200、nおよびm)のn * mを点滅しました以下の中間点。注文テーブル内の各正方形は、Li充填食品バッファロー上記夢ように、巨大な大トレーに円形の形状を有し、N×m個の小さな正方形に分割されています。テーブルの上にリー・バッファローは、彼らの食糧エネルギーのすべてが(あなたが下痢を食べたいので、否定されているそのうちのいくつか)のヒット・ポイントを提供することができ、彼はあなたがどこからテーブルの反対側を食べることを決定したが、彼は食べることの習慣を持っている - 自分のフロントまたは左または右フロントの前に食品のプレートを食べます。

リー・バッファローので空腹は頭脳を持ってしたくない、と彼は最もエネルギーを取得したいので、彼はあなたに問題を言及しました。

データの各セットの出発点は、中間位置の最後の行の下にあります!

入力形式

[データ入力:]

最初のラインmのN(Nは奇数である)、水牛Liが中間の最後の行の下に開始します

m個×n個の番号の次Inmerseマトリックス。

n桁のm行がある。グリッド上に食べ物のプレートのエネルギーのデジタル代表間の空間によって分離を提供することができます。

すべての整数。

出力フォーマット

[出力データ:]

番号、あなたが見つけるのエネルギーの最大値。

サンプル入力と出力

入力#1
6 7 
16 4 3 12 6 0 3 
4 -5 6 7 0 0 2 
6 0 -1 -2 3 6 8 
5 3 4 0 0 -2 7 
-1 7 4 0 7 -5 6 
0 -1 3 4 12 4 2
出力#1
41

説明/ヒント

すぐに食べます!すぐに食べます!すぐに食べます!

F [i] [j]はI、J、MAXEを表します

3つの方向から、プッシュすることができます。

F [I] [J] = MAX(F [I-1] [J-1]、F [I-1]〜[J]、F [I-1] [J + 1])。

コード:

書式#include <iostreamの>
の#include <cstdioを>
する#include <CStringの>
名前空間stdを使用。
N INT、M。
[230] [230] INT、ANS = -12000;
[230] [230] F INT。
ブールブック[203] [203]。

インラインint型の最大値(int型のx、int型のy)は
{
X> Yを返すX:Y;?
}
int型のmain()
{
memsetの(-9999、はsizeof(a)参照)。
CIN >> M >> N。
以下のために(INT I = 1; I <= M; I ++)
のための(INT J = 1; J <= nであり、j ++)
{
CIN >> [I] [J]。
}
INT半ば=(N + 1)/ 2。
以下のために(INT I = 1; I <= M; I ++)
のための(INT J = 1; J <= N; J ++)
F [i]は[J] = MAX(F [I-1] [j]は、MAX( F [I-1] [J-1]、F [I-1] [J + 1]))+ [I] [J]。
COUT << MAX(MAX(F [M] [中間]、F [M] [中間-1])、F [M] [中間+ 1])。
0を返します。
}

おすすめ

転載: www.cnblogs.com/little-cute-hjr/p/11410544.html