1030 lightojゴールドを発見

グリッドの列にN 1は、金は1の範囲〜N再スローを超えたグリッドは、あなたがグリッドにグリッドを取得する場所あなたが最も第1に、サイコロのすべてのスローが決定を開始し、各グリッドに愛金貨、金貨とnの最後の期待を取得するように依頼。

アイデア:、経験の問題を行う前後からプッシュすると予想されている、我々は最大のDPから開始し、

トランスファーケース1~6が、格子面6の現在の数よりも少ない場合に必要文献文章。

1の#include <cstdioを>
 2の#include <アルゴリズム>
 3の#include <math.h>の
 4の#include < 文字列・H>
 5の#include <キュー>
 6  使って 名前空間STDを、
7  のconst  int型 MAXN = 1E3 + 10 8  INT [MAXN]。
9  二重DP [MAXN]。
10  のint main()の
 11  {
 12      のint T。
13      int型 CNT = 0 14      のscanf(" %d個"、&T)。
15      一方(T-- ){
 16          INT N。
17          のscanf(" %d個"、&N)
18          のためにint型 i = 1 ; iが<= N; iが++)のscanf(" %dの"、および[I])。
19          のmemset(DP、0はsizeof (DP))。
20          のためには、int型 I = N; I> = 1 ; i-- ){
 21              // 对格子数特判的处理     
22               塩基 = N- I;
23              もし基地 > = 6基地 = 6 24          
25              [I] = DP [I]を、
26              のためにINT J = 1 ; J <= 塩基 ; J ++ ){
 27                  、DP [I] + = DP / [I jの+] 塩基;
28              }
 29          }
 30          のprintf(" ケース%のD:%Fを\ n "、++ CNT、DP [ 1 ])。
31      }
 32      リターン 0 33 }

 

おすすめ

転載: www.cnblogs.com/pangbi/p/11574385.html