해결책
튜플은 $ (난 J) $ 사이클 부,주기 수의 수를 나타낸다. (등가 클래스 K 및 고정 용량 클래스라는 수학 조합?)
상수 대체 : $ 1 * (1,12) $
무게 중심 + $ 90 : 3 * (4,3) $
얼굴 중심 $ -90 : 3 * (4,3) $
$ 무게 중심 (180) : 3 * (2,6) $
对棱 $ 180 : 6 * [(2,5) + (1,2) $
체심 $ 120 : 4 * (3,4) $
체심 $ 240 : 4 * (3,4) $
그리고 남은 문제는 이러한 등가 클래스의 내부의 색으로 채우는 방법입니다
고려 차별화 된 컬러 공, 상자 고려 등가 클래스에서 차이가 없습니다하는 조합 문제
/ * 튜플 (난, j)는 단면의 사이클 수, 사이클 수, 고정 용량 형 K 등가 클래스와라는 수학 조합 나타내는 1 * (1, 12) : 일정한 변위 면심 + 90 : 3 * (4,3) -90 얼굴 중심 : 3 * (4,3) 3 * (2,6)면 (180)을 중심 (180)는 리브 : 6 * [(2,5) + (1,2)] 체 중심 120 : 4 * (3,4) 체심 240 : 4 * (3,4) * / #INCLUDE <알고리즘> #INCLUDE <cctype> #INCLUDE <cmath> #INCLUDE <cstdio> #INCLUDE <cstdlib> #INCLUDE < CString을> 사용법 #include <iostream> 사용법 #include <지도> 사용법 #include <큐> 사용법 #include < SET > 사용법 #include <스택> 의 #if__cplusplus> = 201103L #INCLUDE <unordered_map도> #INCLUDE <unordered_set> #endif 다음 #INCLUDE <벡터> #DEFINE의 LSON의 RT << 1,1- 중간 #DEFINE의 rson의 RT << 1 | 1, 중간 + 1, R #DEFINE LONG_LONG_MAX 9223372036854775807LL #DEFINE LL LL 사용하여 네임 스페이스 표준; 타입 정의 긴 긴 LL; 타입 정의 긴 더블 LD; 타입 정의 부호없는 긴 긴 날개 펼진; 쌍 타입 정의 < INT , INT > P; INTN, M, K; CONST의 INT maxn 1E5 + = 10 ; int로 A [ 7 ], B [ 7 ]; 인라인 LL의 FAC (LL 않음) { LL 입술 = 1 ; 위한 ( int로 I = 2 ; 나는 <= N; ++ i가 ) 된 RE * = I; 반환 입술을; } 인라인 LL의 C (LL N, LL의 m) { 경우 (N < M) 복귀 0 ; 반환 FAC (N)에 / (FAC (m) * FAC (N - m)); } 인라인 게요 작은 동전 ( INTK) { memcpy가 (B, A, 는 sizeof a); INT의 그룹 = 0 ; 위한 ( int로 I = 1 ; i가 = < 6 ; 내가 ++ ) { 경우 (b [I] %의 K) 복귀 0 ; // 不能完全以K划分 [내가] / B = K; 그룹 + = B의 [I]; } LL 입술 = 1 ; 위한 ( int로 I = 1 ; i가 = < 6 I ++; ) { 입술을* = C (그룹 B [I]); 그룹 - =의 B [I]; } 반환 입술을; } 인라인 () 해결하는 것이다 { LL 입술 = 0 ; 입술 + = 작은 동전 ( 1 ); // 不动置换 입술 + = 2 * 3 * 작은 동전 ( 4 ); // 面心+ 90 -90 입술 + = 3 * 작은 동전 ( 2 ); // 面心(180) 에 대해 ( int입니다 I = 1 ; i가 = < 6 ; 내가 ++ ) 에 대해( INT의 J = 1 ; J <= 6 , J ++ ) { 경우 ((I, J == && A [I] < 2 ) || (I = J && (a [I] || !!! A [J] ))) 계속 ; A [I] - A [J] - ; 입술 + = 6 * 작은 동전 ( 2 ); // 对棱180 A [i]를 ++, A [J] ++ ; } 입술 + = 2 * 4 * 작은 동전 ( 3 ); // 体心+ 120, -120 복귀 입술 / ;24 } INT 본체 ( 의 INT 는 argc, 숯 CONST * 는 argv []) { #ifndef ONLINE_JUDGE freopen을 ( " in.txt " , " R " , 표준 입력); freopen을 ( " out.txt " , " w " , 표준 출력); #endif 다음 IOS :: sync_with_stdio ( 거짓 ); cin.tie ( 0 ); cout.tie ( 0 ); INT의 t; CIN >> t; 반면 t-- () { memset 함수 (a, 0 , sizeof 연산자 a); 위한 ( int로 I = 0 ; I는 < 12 ; i가 ++ ) { INT (X)를; CIN >> X; A [X] ++ ; } COUT <<) (<< 해결 " \ 않음을 " ; } 반환 0 ; }