문제의 의미
충돌 볼과 경사의 수를 추구, 자유 낙하를위한 작은 공을 만들기 위해 어딘가에서, 경사를 주어 (모두 탄성 충돌한다고 가정).
분석
도 문제는 다음, X 축으로, Y 축은 가상이다.
고등학교 물리 루틴, 중력 가속도는 표면을 경사 방향에 따라 폭발 할 수 있습니다.
#INCLUDE <비트 / stdc ++ H.> 사용 스페이스 성병; CONST 이중 g = 9.8 ; const를 더블 EXP = 0.000001 ; 이중 A, B, X, Y; INT 의 main () { INT의 T; scanf와 ( " %의 D ' , T); 반면 (T-- ) { 는 scanf ( " % LF % LF % LF % LF " , & A, B, X, Y); 경우 (a *의 Y + B * X < EXP) { 의 printf ( " 0 \ n" ) 계속 ; } 더블 SINN = B / SQRT (A *의 A + B의 *의 B) COSS가 = A / SQRT (A *의 A + B의 *의 B)를, 더블 all_t = SQRT ( 2 * ((X / COSS) * (SINN - 1. / SINN) + Y) / G); // 램프 시간에 따른 이중 T = SQRT ( 2 * (*에서의 X + Y SINN / COSS) / G); // 수직 램프 단일 시간 / / 의 printf ( "% F % F \ N-"all_t, T) 의 INT TMP = ( INT ) ((all_t + 특급) / T)] 의 printf ( " % D의 \의 N- " (TMP의 + 1이다. ) / 2 ) ; } 반환 0 ; }