아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

기어 조합하기

시간 제한2초메모리 제한256 MB

요약
예산 b가 주어질 때, 비용 합이 b를 넘지 않도록 톱니 수를 골라 서로 다른 바늘 방향 조합의 수를 최대로 만들고, 그 자연로그를 출력한다.
난이도

어려움10점 중 8점

유형
수학, 정수론, 그리디, 동적 계획법
정답자
아직 제출이 없습니다

문제

사회가 빠르게 발전하면서 고정밀 시계의 수요가 계속 늘고 있다. 최근 China Clock Production Company는 다양한 시각을 표현할 수 있는 새로운 종류의 시계를 개발하고 있다.

이 새로운 시계는 특이한 방식으로 현재 시각을 표시한다. 시계는 여러 개의 바늘로 이루어져 있고, 각 바늘은 기어 하나로 제어된다. 모든 기어는 한 주기마다 톱니 하나씩 동기화되어 회전한다. 다만 기어마다 톱니의 개수는 다를 수 있다. 톱니가 tt개인 기어가 있으면 그에 대응하는 바늘은 tt가지 서로 다른 방향을 가리킬 수 있고, 각 방향을 0,1,2,⋯ ,t−10, 1, 2, \cdots, t-1이라 하며 00이 초기 방향이다. 또한 시계에 바늘이 nn개 있고 ii번째 바늘이 톱니 t_it\_i개인 기어로 제어된다면, kk 주기의 시간이 지난 뒤 ii번째 바늘은 k mod t_ik \bmod t\_i를 가리킨다.

톱니가 tt개인 기어의 가격은 tt위안이다. 총 예산 bb위안이 주어질 때, 바늘 방향의 유효한 조합 수가 최대가 되도록 기어 조합을 설계해야 하며, 기어에 드는 총비용은 예산을 넘지 않아야 한다. 방향 조합 (d_1,d_2,⋯ ,d_n)(d\_1, d\_2, \cdots, d\_n)이 유효하다는 것은 어떤 음이 아닌 정수 kk에 대해 (k mod t_1,k mod t_2,⋯ ,k mod t_n)(k \bmod t\_1, k \bmod t\_2, \cdots, k \bmod t\_n) 로 쓸 수 있다는 뜻이고, 여기서 t_it\_i는 ii번째 기어의 톱니 개수다. 답이 너무 클 수 있으므로 자연로그(e=2.718281828⋯e = 2.718281828\cdots를 밑으로 하는 로그) 값을 출력한다.

입력

첫째 줄에 테스트 케이스의 수를 나타내는 정수 TT (1≤T≤30  000)(1 \leq T \leq 30\;000)가 주어진다. 각 테스트 케이스는 총 예산을 나타내는 정수 bb (1≤b≤30  000)(1 \leq b \leq 30\;000) 하나로 이루어진 한 줄이다.

출력

각 테스트 케이스마다 유효한 조합 수의 최댓값의 자연로그를 절대 또는 상대 오차 10−610^{-6} 이하로 한 줄에 출력한다.

힌트

두 번째 예제 데이터에서는 톱니가 3개인 기어와 톱니가 4개인 기어를 쓰면 방향 조합 12가지를 얻을 수 있고, 총비용은 정확히 7이다. 따라서 ln⁡12\ln 12의 값인 약 2.484906650을 출력해야 한다.

예제1

  1. 예제 1

    입력
    3
    2
    7
    10
    
    예상 출력
    0.693147181
    2.484906650
    3.401197382