주제 링크 : https://www.lydsy.com/JudgeOnline/problem.php?id=1079
AC 코드 :
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 / * 2 우리는 컬러가 아닌 동일한 제한이, 인접없는 고려할 경우 직접 압축 상태 분명히 가능하지 3 나무 조각의 개수가 동일한 두 페인트 염색 할 수있는 경우, 우리는 두 페인트에 차이점을 고려할 수있다. 4 DP 제공 [A1] [A2] [ A3] [A4] [A5] 페인트를 차단하는 프로그램 ...... A1 종의 번호를 가지고 형질 감염 될 수있다. 5 색의 마지막 번호는 K 페인트를 사용하지만, 인접한의 한계 컬러가 6 K-1 색 페인트의 번호가 다음이 시간이 때 전사 참고 사용될 수 없다. . 7 * / . 8 # 1 기호 <iostream>를 포함한다 . (9) # (가) <STDIO.H가> 등 (10) (가)가 포함 # < 문자열 .H> . (11) (가)가 포함 # <알고리즘> (12)는 (가)가 포함 #은 <비트 세트> 13되는 (가)가 포함 #은 <ctime이> 14 중 # 포함 <climits는> 15 (가) # 포함 < SET > (16)# 포함 <지도> 17 # 포함 <cctype> 18 # 1 <cmath> 포함하는 19 # 포함 <양단> 20 # 포함 <큐> 21 # 포함 <적층> 22 # 포함 <벡터> 23 # 포함 <작용> 24 사용 공간을 표준; (25) (26) 의 typedef 긴 긴 LL; 27 CONST의 INT의 maxn = 16 ; 28 CONST LL의 개조 1E9 + = 7 ; 29 INT의 N, X [ 16 ]; 30 LL의 F [ 16[ 16 ] [ 16 ] [ 16 ] [ 16 ] . 6 ] /// 이 회 그린 전에 F 어레이 B가 코팅이다 .... 번 현재 페인트 코팅을 나타낼 수 k는 시간 코팅 그릴 수 31 인 BOOL DP [ 16 ] [ 16 ] [ 16 ] [ 16 ] [ 16 ] . 6 ] (32) (33)는 LL DP ( int로 A, INT의 B, INT의 C, INT의 D, INT의 E, 지능 K) (34)는 { 35 LL T = 0 ; 36 IF(DP [A] [B] [C] [D] [E] [K]) 37 리턴 F를 [A] [B] [C] [D] [E] [K] 38 IF (A + B + == E + D + C 0 ) 39 리턴 1이다. ] (40) IF (A) (41)는 T = T + (A- (K == 2 )) * DP (A- (1). , B, C, D, E, 1이다. ); /// (있도록-1) 페인트 색상 마지막 번호 2를 사용할 경우 색의 한 종류가 하나 개의 블록으로 염색 할 수 있고, 블록 0에 형질 감염 될 수있다,이 시간은 컬러 숫자가 페인트를 사용할 수없는 42 IF (B) (43)는 T = T + (B- (K == 3. * DP (a +)) 1. , B- (1). , C, D, E, 2 ) ///염료 색 1 종 블록으로 형질 감염 될 수있는 두 개의 블록이 될 수있다 (따라서, B-1, A + 1) , 3 색의 마지막 번호가 도료를 사용하는 경우, 이번에는 컬러 번호 2가 페인트를 사용할 수 없다 (44)는 IF (C) 45 T = T +합니다 (C- (K == 4. * DP (A, B의 +)) 1. 상기 C- 1. , D, E, 3. ) /// 방법을 색 염료 3 개 큐브 블록 (2)로 염색 할 수있다 (따라서 C-1, B + 1) , (4)를 칠하는데 사용 색상의 마지막 번호는,이 시간은 페인트 색상의 수는 3에있을 경우 사용되지 않는 (46)는 IF (D) (47) T = T + (D- (K == 5. )) * DP는 (A, B는 C + 1. , D- 1. , E는 4. ) /// 염료의 1 종 4 일 수있다 블록의 색은 3 개 큐브로 염색 될 수있다 (따라서 D-1, C + 1) , (5)의 마지막 숫자는 페인트 색상을 사용하는 경우,이 시간은 컬러 번호 4 도장하는데 사용될 수있다 48 IF (E) (49) + E = T * T DP (A, B, C, D + 1. , E- 1. , 5. ) /// 컬러의 1 종류 (그것의 E-1 다섯 개 블록, 즉 4 개 개의 블록으로 형질 감염 될 수 염색 할 수있다 , D + 1)가 피사체 조건 때문에, 상자 (5)의 색상으로 염색 할 수있는 경우. 1 <= CI <=. 5, 따라서 그 않았을해야 설명은 이전에 사용 된 50 DP [A] [B] [C] D는 [E]가 [K] = 1;. 51 인 돌아 F를 [A]는 [B]는 [C]는 [D] [E]는 [K] = (T %의 MOD) (52)이다 } 53는 54이다 INT 주 () 55 { 56 인 scanf와 ( " %의 D " , 및 N-) (57)는 에 대해 ( INT I = . 1 ; I는 <= N- I ++ ) 58 { 59 INT와이; 60 는 scanf ( " %의 D ' , Y); 61 X [Y] ++ ; 62 } 63 의 printf ( " % LLD \ 없음 " , DP (X [ 1 ], X [ 2 ], X [ 3 ], X [ 4 ], X [ 5 ], 0 )); 64 반환 0 ; 65 }