トピックの背景
張銭は138紀元前に、西域への多数のミッションを通過していました。漢王朝と欧米諸国との友好交流を強化します。それ以来、この事業のラクダのキャラバンのチーム旅行への長い道は、彼らはスパイスが、良い馬が私たちの国に渡す中央アジア、西アジア、ヨーロッパ、中国、に高度な技術で、山を越えました。人々は砂漠に荒涼とした煙を見つめたとき、すべては過去の貿易、文化の繁栄の空想を引き起こした......
タイトル説明(トピックのリンク:https://www.luogu.org/problem/P3399)
小さなシルクロードの開始と終了点を含む残りの部分への中国からの商品、とハムスター、Nの合計+ 1都市、都市が出発点長安0で、Nの数は、バグダッドの街の終わりです。これは、M日がフィニッシュラインに到達しなければならないよりも、これ以上は必要ありません。一日の時間は、1つの都市から次の都市に連続することができます。街から街へI-1 iの距離Diにあります
我々はすべて知っているように、連続急いは非常に難しいので、少しハムスターは、市内であってもよく、次のオプションを持つことができます。
-
モバイル:街を行進
-
残り:動かないオリジナルの都市に滞在
砂漠の変更天候天候が非常に悪い場合、前方には多くの困難に遭遇します。私たちは、最初の日のJのM悪天候の(1 <= J <= M)日Cjとによって示される値を入れます。Jマーチング日に市私は、疲労ディ* Cjのを取るときI-1は、市から移動されます。
しかし、少しハムスターはまだオプションを持って、あなたは比較的悪天候を避けることができ、残りは疲労値を消費するつもりはありません。今、彼は消費全体の旅行のどのくらいの疲労最小値を知りたいです。
入力形式
二つの整数N、Mの最初の行
連続した整数N線Djの
M行それぞれの連続した整数Cjと
出力フォーマット
最小の疲労を表す整数
サンプル入力と出力
3 5 10 25 15 50 30 15 40 30
1125
説明/ヒント
__この質問時間1秒、メモリリミット128Mは、新しい評価機速度はNOIP評価機の速度に近いため、問題によって引き起こされる影響に一定の配慮。__
残りの1日目
2日目0-> 1疲労値10×30 = 300。
デイ31-> 2疲労値25×15 = 375。
4日目休憩
15×30 = 450の日52-> 3疲労値。
1≦N≦M≦1000年
1≦ディ、1000年CI≦
分析:明らかに問題がDPで、[i] [j]が最小疲労市のIに到達するために、j番目の日を示しますfは日数がタイトル疲労は、二つのパラメータ、配列fの導入を持っています
状態方程式を得ることができる:F [I] [J] =分(F [I] [J-1] + 0、F [I-1] [J-1] + C [j] * D [I])。
初期化がある:F [i]は[I] = F [I-1] [J-1] + C [I] * D [i]は、
要約F [N]で[m]は答えは
次のようにC ++のコードは次のとおりです。
#include <ビット/ STDC ++ H.> 使用して 名前空間STD; INT D [ 1000年 + 5 ]、C [ 1000年 + 5 ]; // D:距離、C:天気 INT F [ 1000年 + 5 ] [ 1000年 + 5 ] ; // J i日疲労都市における最小 INT のmain() { int型 N-、M; // N市、M日 CIN >> N- M; // 疲労ジ* Cjと、I-1は、都市からの移動を表し、私が向かったj番目の日である ためには、(int型 I =を1。 ;私は<= N-;私は++)>> CIND [i]は、 以下のために(int型 I = 1 ; I <= M; iは++)CIN >> C [i]は、 // F [I] [J] =分(F [I] [J-1] + 0、F [I-1] [J-1] + C [j] * D [I])。 以下のために(int型 i = 1 ; iは= N <; iは++ ){ F [i]は[I] = F [I- 1 ] [I- 1 ] + C [I] * D [i]は、// 连续赶路不休息 のために(INT J = iは+ 1、J <= Mであり、j ++ ){ F [I] [J] =分(F [I] [J- 1 ] + 0、F [I- 1 ] [J- 1 ] + C [j] * D [I])。 } } COUT << F [n]は[M]。 リターン 0 ; }