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

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

가족

시간 제한1초메모리 제한128 MB

요약
자녀가 각 유전자를 두 부모 중 하나에서 무작위로 물려받는 가족 그래프에서 몬스터 쌍이 공유하는 유전자의 기댓값을 백분율로 구한다.
난이도

보통10점 중 7점

유형
그래프, 동적 계획법, 수학, 확률
정답자
아직 제출이 없습니다

문제

괴물 가족 구성원들이 서로 얼마나 가까운 관계인지 측정하려고 합니다. 모든 괴물은 같은 수의 유전자를 가지지만, 개별 유전자는 괴물마다 다를 수 있습니다. 두 괴물이 유전자를 몇 개나 공유하는지 알 수 있다면 좋겠지만, 유전자 수가 매우 많아 직접 세는 것은 불가능합니다. 다만 우리는 가족 그래프(정확히 트리는 아닙니다)와 유전자가 유전되는 방식을 알고 있으므로, 공유 유전자 수의 기댓값을 정확히 계산할 수 있습니다.

유전 규칙은 간단합니다. 괴물 CC가 괴물 AA와 BB의 자식이라면, CC의 각 유전자는 (유전자마다 독립적으로) 확률 50%50\%로 AA의 대응 유전자와, 확률 50%50\%로 BB의 대응 유전자와 동일합니다. 모든 괴물의 모든 유전자는 서로 독립적으로 유전됩니다.

두 괴물 XX와 YY의 관계도를 공유 유전자 수의 기댓값으로 정의합니다. 예를 들어 서로 완전히 무관한(공유 유전자가 없는) 두 괴물 AA, BB와 그들의 두 자식 CC, DD로 이루어진 가족을 생각해 봅시다. CC의 각 유전자는 확률 50%50\%씩 AA 또는 BB에서 오고, DD도 마찬가지입니다. 따라서 CC의 어떤 유전자가 DD의 대응 유전자와 같을 확률은 50%50\%이며, CC와 DD의 관계도는 전체 유전자의 50%50\%가 됩니다. 만약 AA와 BB가 서로 관계가 있었다면 답은 달라집니다. AA와 BB가 공유하는 유전자는 CC와 DD 모두에게 반드시 유전되기 때문입니다.

가족 그래프와 괴물 쌍의 목록이 주어질 때, 각 쌍의 관계도를 구하세요. 여러분의 프로그램은 다음을 수행해야 합니다.

  • 표준 입력에서 가족의 정보와 구성원 쌍의 목록을 읽고,
  • 각 쌍의 관계도를 백분율로 계산하여,
  • 표준 출력에 결과를 씁니다.

입력

첫 번째 줄에 공백으로 구분된 두 정수 nn과 kk가 주어집니다. nn (2≤n≤3002 \le n \le 300)은 가족 구성원의 수이며, 구성원은 11부터 nn까지 임의로 번호가 매겨집니다. kk (0≤k≤n−20 \le k \le n-2)는 부모가 있는 괴물의 수이고, 나머지 괴물은 모두 신이 창조하여 서로 완전히 무관합니다.

다음 kk개의 줄에는 각각 공백으로 구분된 서로 다른 세 정수 aa, bb, cc가 주어지며, 이는 괴물 aa가 괴물 bb와 cc의 자식임을 의미합니다.

그다음 줄에는 정수 mm (1≤m≤n21 \le m \le n^2), 즉 쌍의 개수가 주어집니다. 이어지는 mm개의 줄에는 각각 두 괴물의 번호가 주어집니다.

어떤 괴물도 자기 자신의 조상이 아닙니다. 입력에 대해 그 외의 어떤 가정도 하지 마세요. 특히 유효한 성별 배정이 존재한다고 가정해서는 안 됩니다.

출력

mm개의 줄을 출력합니다. ii번째 줄은 ii번째 쌍에 대응하며, 그 쌍의 정확한 관계도를 백분율로 나타낸 값 뒤에 퍼센트 기호(%)를 붙여 출력합니다. 의미 없는 00은 출력하지 마세요. 다만 소수점 앞에는 반드시 한 자리 이상의 숫자가 있어야 합니다(예를 들어 0.10.1의 맨 앞 00은 의미가 있으므로 .1처럼 생략할 수 없습니다). 정확한 값은 항상 유한소수입니다.

예제3

  1. 예제 1

    입력
    7 4
    4 1 2
    5 2 3
    6 4 5
    7 5 6
    4
    1 2
    2 6
    7 5
    3 3
    
    예상 출력
    0%
    50%
    81.25%
    100%
    
  2. 예제 2

    입력
    2 0
    3
    1 2
    1 1
    2 2
    
    예상 출력
    0%
    100%
    100%
    
  3. 예제 3

    입력
    4 2
    3 1 2
    4 1 2
    4
    3 4
    3 3
    3 1
    1 2
    
    예상 출력
    50%
    100%
    50%
    0%