숫자 N은 0의 수가이 직접 답은 다음 2의 제곱 곱한 필요한 숫자를 곱하여 인 취출 각 이진 비트 번호의 각 숫자 모든 장소가 모드 모듈에 유출 될 수도 있습니다.
1 #DEFINE HAVE_STRUCT_TIMESPEC 2 #INCLUDE <비트 / stdc ++ H.> 3 사용 공간이 수 std; 4 긴 장시간 이 [ 300007 ]; 5 의 INT NUM [ 300007 ] [ 67 ]; 6 긴 긴 sum0 [ 67 ], SUM1 [ 67 ] presolve [ 67 ]; 7 CONST 긴 긴 개조 1E9 + = 7 ; 8 INT 주 () { 9 IOS :: sync_with_stdio ( 거짓 ); (10) cin.tie (NULL); 11 cout.tie (NULL); 12 INT N; 13 CIN >> N; 14 대 ( INT 나 = 1 ; i가 <= N; ++ I) 15 CIN >> A [I]; 16 대 ( INT 나 = 1 ; i가 <= N; ++ I) { 17 긴 긴 온도 = A [I]; 18 INT CNT = 0 ; 19 일 동안 (TEMP) { 20 의 경우 (온도 및 1 ) 21 NUM [I] [CNT] =1 ; 22 ++ CNT; (23) 온도 / = 2 ; 24 } 25 } 26은 긴 길이 = ans와 0 ; 27 대 ( INT 나 = 1 ; i가 <= N; ++ i)는 { (28) 에 대해 ( INT에서 K = 0 ; K <= 60 ; ++ K) { 29 일 경우 (NUM [I] [K] == 0 ) 30 ++ sum0 [K]; (31) 다른 32 ++SUM1 [K]; 33 } 34 } 35 긴 긴 X = 1 ; 36 presolve [ 0 ] = 1 ; 37 대 ( INT 나 = 1 ; I <= 60 ; ++ I) { 38 X * = 2 ; 39 presolve [I] = (X); 40 } 41 대 ( INT 난 = 0 ; I <= 60 ; ++ I) { 42 ANS + = (((sum0 [I] * SUM1 [I]) %의 개조) * (presolve [I] %의 개조)) %를모드; 43 년 % = 개조; 44 } 45 COUT << 년; 46 반환 0 ; 47 }