[- 모든 제 더한 번호 R1은, 즉, 구간 [0,2Ri, 포함 및 제외, 수신 일축 구간 [0, + OO) 고려 변경 ) 2Ri, + OO를 ) 주문하고 [2Ri, + OO를 $ BI = 인공 2Ri $으로는 범위 [0과 동등한, + OO)을
변환하고, 숫자 나 N 무한대 범위 위해서 프로그램의 수를 초과하지 않으며, 발견 추측을 $의 B ^ {N} / 그 N! $, 폭력이 누적 될 수 있습니다
1 #INCLUDE <. 비트 / stdc ++ H> 2 사용 스페이스 성병; 3 #DEFINE의 LD 긴 이중 4 의 INT t, N, X, Y, A [ 11 ]; 도 5 의 LD ANS; 6 의 LD CALC ( INT의 K) { 7 경우 (K <= 0 ) 복귀 0 ; 8 의 LD ANS = 1 ; (9) 에 대해 ( int로 I = 1 ; i가 N = <; 내가 ++) ANS ANS * = K / I; 10 리턴 ANS; 11 } 12 INT의 주 () { 13 는 scanf ( " %의 D " , t); 14 일 동안 (t-- ) { 15 는 scanf ( " % D % D % D " , N, X, Y); 16 ANS = 0 ; (17) 에 대한이 ( int로 I = 0 ; I <N이 나 ++ ) { 18 는 scanf ( " %의 D " , & A [I]); 19 X + = A [I]; (20) Y + = A [I]; (21) A는 [내가] = A [i]는 * 2 ; (22) } (23) 에 대해 ( int로 I = 0 ; I는 (< 1 << N) 내가 ++ ) { 24 INT p = 1 , S = 0 ; 25 대 ( INT의 J = 0 , N J <; J ++ ) (26) 의 경우 (I & ( 1 << J)) { 27 P * = - 1 ; 28 개 (S) + = A [J]; 29 } 30 ANS + = P *의 (CALC (YS) -calc (X- S)); 31 } 32 위한 ( int로 I = 0 ; I <N은, 내가 ++) ANS / = A [I]; 33 의 printf ( " % .9Lf \ n을 " , ANS); 34 } 35 }