[等]圧力DP P2157 [SDOI2009]学校のカフェテリア

1の#include <cmath>
 2の#include <cstdioを>
 3の#include <CStringの>
 4の#include <iostreamの>
 5の#include <アルゴリズム>
 6  使って 名前空間STD。
7  
8  CONST  INT INF = 0x3f3f3f3f 9  
10  のint N、Tの[ 1010 ]、B [ 1010 ]、F [ 1010 ] [ 256 ] [ 20 ]。
11  
12  のint main()の 
 13  {
 14      のint T。
15      CIN >>T;
16      一方(T-- 17      {
 18          CIN >> N。
19          のためには、int型 i = 1 ; iがn = <; iは++ 20          {
 21              CIN >> T [I] >> B [i]は、
22          }
 23          のmemset(F、0x3fをはsizeof (F))。
24          F [ 1 ] [ 0 ] [ 7 ] = 0 25          のためには、int型 i = 1 ; iが<= N; I ++26              のためのINT J = 0 ; J < 256 ; J ++ 27                  のためのINT K = - 8 ; <= K 7 ; kは++ 28                      であれば(F [I] [J] [K + 8 ] =!INF)
 29                      {
 30                          であれば(J&1)F [I + 1 ] [J >> 1 ] [K + 7 ] =分(F [I + 1 ] [J >> 1 ] [K + 7 ]、I [F ] [J] [K + 8 ])。
31                          
32                          {
 33                              のint L = INF。
34                              のためにINT H = 0 ; H <= 7 ; H ++ 35                                  であれば(!((J >> H)1 ))
 36                                  {
 37                                      ならば(私はH +> l)をブレーク38                                      lは=分(L、Iは[iが+ H + Bを+ H])を、
39                                      F [i]は[J | 1 << H)] [H + 8 ] =分(F [I] [J |(1 << H)] [H + 8]、F [i]は[J] [K + 8 ] +(I + K(T [I + K] ^ T [iが+ H]):0 ))。
40                                  }
 41                          }
 42                      }
 43          のintミント= INF。 
44          のためには、int型 i = 0 ; iが<= 8 ; I ++ 45              ミント=分(ミント、F [N + 1 ] [ 0 ] [I])。
46          coutの<<ミント<< てendl;
47      }
 48 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/thjkhdf12/p/11641169.html