보그 부기

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

요약
연결된 무방향 그래프와 고정된 보행 경로가 주어질 때, 무작위로 걷는 감시자와 선장이 충돌하거나 자리를 바꾸지 않을 확률을 구한다.
난이도

어려움10점 중 8점

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

문제

우주선 함장은 위험한 직업입니다. 특히 보그(Borg) 영역에서 임무를 수행할 때는 더욱 그렇습니다. 오늘 함장은 보그 우주선에 순간이동으로 잠입하여 쓸 만한 정보를 찾아내야 합니다.

이 우주선은 길이가 모두 같은 통로로 연결된 방들로 이루어져 있습니다. 어떤 두 방 사이에도 직접 연결하는 통로는 많아야 하나뿐이며, 임의의 방에서 다른 어떤 방으로도 이동할 수 있습니다. 즉, 우주선은 하나의 연결된 그래프입니다.

오래전 보그가 남겨 둔 감시병 하나가 배 안을 무작위로 순찰합니다. 감시병은 1분마다 현재 방과 통로로 이어진 이웃 방 중 하나를 같은 확률로 골라 그 방으로 이동합니다. 아주 오랫동안 배회해 왔기 때문에, 함장이 잠입하는 순간 감시병의 위치는 무작위이며, 특정 방에 있을 확률은 그 방에 연결된 통로의 수(그 방의 이웃 수)에 비례합니다.

함장은 정해진 순서대로 방들을 방문하라는 명령을 받았습니다. 이 방문 순서는 배 위의 하나의 워크(walk)로, 이웃한 방끼리 통로로 이어져 있으며 같은 방을 여러 번 지날 수도 있습니다. 함장은 각 방에서 정확히 1분씩 머무르며, 함장과 감시병이 정확히 같은 순간에 이동하도록 시간을 맞춥니다.

함장은 다음 두 경우에만 붙잡힙니다. 동시에 이동한 뒤 둘이 같은 방에 있게 되거나, 서로 방을 맞바꾸는 경우(함장이 감시병이 방금 떠난 방으로 들어가고, 동시에 감시병이 함장이 방금 떠난 방으로 들어가는 경우)입니다. 함장은 워크의 첫 번째 방으로 순간이동해 내려오고 마지막 방에서 순간이동해 올라가며, 이 두 방에서도 붙잡힐 위험이 있습니다.

함장이 한 번도 붙잡히지 않고 전체 워크를 완수할 확률을 구하세요.

입력

첫째 줄에 방의 개수 NN (2≤N≤5002 \le N \le 500)이 주어집니다.

둘째 줄에 함장이 방문해야 하는 방의 개수 LL (1≤L≤5001 \le L \le 500)이 주어집니다.

셋째 줄에 함장의 워크를 이루는 LL개의 방 번호가 순서대로 주어집니다(방 번호는 00부터 시작합니다).

다음 NN개의 줄은 각 방을 설명합니다. ii번째 줄(방 ii, 00부터 시작)은 방 ii의 이웃 수 nin_i로 시작하고, 이어서 그 이웃 방들의 번호 nin_i개가 주어집니다.

출력

함장이 감시병에게 한 번도 들키지 않고 임무를 완수할 확률을 소수점 아래 정확히 66자리까지 반올림하여 출력하세요(예: 0.500000).

예제4

  1. 예제 1

    입력
    3
    1
    0
    2 1 2
    1 0
    1 0
    
    예상 출력
    0.500000
    
  2. 예제 2

    입력
    8
    6
    1 0 2 3 0 1
    7 1 2 3 4 5 6 7
    1 0
    2 0 3
    2 0 2
    1 0
    1 0
    1 0
    1 0
    
    예상 출력
    0.044643
    
  3. 예제 3

    입력
    8
    7
    1 0 2 3 2 0 1
    7 1 2 3 4 5 6 7
    1 0
    2 0 3
    2 0 2
    1 0
    1 0
    1 0
    1 0
    
    예상 출력
    0.177615
    
  4. 예제 4

    입력
    2
    1
    0
    1 1
    1 0
    
    예상 출력
    0.500000