Atcoder 초급 대회 147D

숫자 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 }

추천

출처www.cnblogs.com/ldudxy/p/12076864.html