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

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

Game of Questions

시간 제한5초메모리 제한1024 MB

요약
n개의 문제에 대해 m명의 참가자가 맞혔는지 여부가 주어질 때, 문제를 무작위 순서로 풀었을 때 1번 참가자가 끝까지 남을 확률을 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 비트 연산, 수학
정답자
아직 제출이 없습니다

문제

Genie는 지적 게임에 참가하고 있다. 이 게임은 nn개의 문제로 이루어지며, 11번부터 mm번까지 번호가 매겨진 mm명의 참가자가 있다. Genie는 11번 참가자이다.

각 문제 ii와 참가자 jj에 대해, 참가자가 그 문제를 맞힐지 틀릴지가 주어진다.

게임의 목표는 끝까지 남아 있는 마지막 참가자가 되는 것이다.

게임은 다음과 같이 진행된다. 먼저 nn개의 문제를 균일한 확률로 무작위로 섞는다(가능한 n!n!개의 순열이 모두 같은 확률을 가진다). 그다음 문제를 하나씩 출제한다. 각 참가자가 그 문제에 답한다. 아직 남아 있는 참가자가 모두 맞히거나 모두 틀리면 아무 일도 일어나지 않는다. 그렇지 않으면 틀린 참가자가 탈락한다.

nn개의 문제를 모두 출제한 뒤 아직 남아 있는 참가자는 모두 승자로 선언된다.

Genie가 게임에서 이길 확률은 얼마인가?

입력

첫 줄에 문제 수 nn과 참가자 수 mm이 주어진다(1≤n≤2⋅1051 \le n \le 2 \cdot 10^5; 2≤m≤172 \le m \le 17).

이어지는 nn개의 줄 중 ii번째 줄에는 mm개의 문자 si,1,si,2,…,si,ms_{i,1}, s_{i,2}, \ldots, s_{i,m}이 주어진다. 문자 si,js_{i,j}는 참가자 jj가 문제 ii를 맞히면 '1', 그렇지 않으면 '0'이다.

출력

Genie가 게임에서 이길 확률을 출력한다. 절대 오차 또는 상대 오차가 10−910^{-9} 이하이면 정답으로 인정한다.

예제3

  1. 예제 1

    입력
    1 5
    11010
    
    예상 출력
    1.0000000000000000
    
  2. 예제 2

    입력
    3 3
    011
    101
    110
    
    예상 출력
    0.3333333333333333
    
  3. 예제 3

    입력
    6 4
    1011
    0110
    1111
    0110
    0000
    1101
    
    예상 출력
    0.1666666666666667