最大の製品範囲DP--

F.最大の製品

メモリ制限:128のMIB 制限時間:1000msの標準出力
質問の種類:伝統的な評価方法:テキスト比較

タイトル説明

今年も、「2000--世界数学」を決定するために国際数学連合で有名な数学者、氏は華の誕生日の90周年と一致しています。壮観の活動を組織氏華の故郷ジンタン、数学のクイズ、あなたの良い友人XZの1にも参加する名誉を持っていました。活動は、そのようなタイトルに参加する全てのプレイヤーへのホストは:数値のN文字列の長さで、プレイヤーはポイントを見つけるために、K + 1の部分にそれに署名乗算Kの使用を必要とし、 K + 1これらの部分の積が最大となるようになっています。一方、正しく問題を理解することができるプレーヤーを助けるために、減速材もまた、以下の実施例に引用されている:数字の列:312、N = 3、K = 1次の2点の方法が存在することになる場合、1)3 12 = 362)31 * 2 31 = 62:この場合、2 = 62、結果は、被験体の要件に沿ったものです。さて、あなたはあなたの友人が正しい答えを得るためにプログラムを設計XZ助けます。

入力形式

2つの固有番号Nの最初の行があり、K(6≤N≤40,1≤K≤6)

2行目は長さNの数値文字列であります

出力フォーマット

得られた生成物の最大出力(自然数)。

サンプル

サンプル入力

4 2
1231

サンプル出力

62

 

 

 

1つの#include <iostreamの>
 2の#include <CStringの>
 3。の#include <cstdioを>
 4。の#include <スタック>
 5。 使用した 名前空間STD;
 6符号なしロング ロング N-、/ * 乗算番目K、K + 1部分* / DP [ 50 ] [ 10 ]、A [ 41である ] [ 41はである ] / * セグメントにI jビット前* / インク;
 7  int型K6、
 8  文字  [ 51である];
 9  int型のmain()
 10  {
 11。     CIN >> N >> K6;
12      K6 ++ ;
13      CIN >> における + 1 14      のためには、int型 i = 1 ; iがn = <; iは++ 15      {
 16          インク= 0 17          のためのint型 ; J <= N; J = J ++ 18          {
 19              インク=インク* 10 +  [J] - ' 0 ' 20              A [i]は[J] = インク。
21          }
 22     }
 23       DP [ 0 ] [ 0 ] = 1 24      のためには、int型 I = 1 <; iがN ++ = i)が/ * DPを[I] [J] -私位分成J段前> * / 
25      {
 26          のint KI = 分(I、K6)。
27          のためにINT J = 1 ; J <= KI J ++ 28          {
 29              のためのint型のk = 1 ; <= I k個あり、k ++ 30              {
 31                  であれば(DPは[K- 1 ] [J- 1] * A [K] [I]> DP [I] [J])
 32                  {
 33                      DP [I] [J] = DP [K- 1 ] [J- 1 ] * A [K] [I]。
34                  }
 35              }
 36          }
 37      }
 38      COUT << DP [n]が[K6]。
39 }

 

 

おすすめ

転載: www.cnblogs.com/lihaolin/p/11276764.html