기대 사이클 크기
시간 제한2초메모리 제한1024 MB
0을 와일드카드로 쓰는 순열 패턴이 주어질 때, 패턴에 맞는 무작위 순열에서 각 인덱스의 기대 사이클 크기를 998244353으로 나눈 나머지로 구합니다.
문제
TL;DR: 순열 패턴은 0을 와일드카드로 쓰는 순열이다. 순열 패턴 가 주어지면, 각 인덱스 에 대해 를 따르는 임의의 순열을 골랐을 때 인덱스 의 기대 사이클 크기를 구하고, 그 값을 으로 나눈 나머지를 출력한다.
순열은 길이가 인 배열 로서, 이고 을 만족한다.
길이가 같은 두 순열 , 의 곱 는 길이가 같은 순열 이며, 를 만족한다.
순열 와 양의 정수 에 대한 거듭제곱 는 다음과 같이 정의한다. 이면 이고, 그 밖의 경우에는 이다.
인덱스 의 사이클 크기는 를 만족하는 가장 작은 양의 정수 이다. 이러한 는 항상 존재함이 알려져 있다.
순열 패턴은 길이가 인 배열 로서, 이고 을 만족한다.
순열 가 패턴 를 따른다는 것은, 모든 에 대해 또는 이 성립한다는 뜻이다.
는 주어진 패턴을 따르는 임의의 순열에서 인덱스 의 기대 사이클 크기이다. 를 으로 나눈 나머지를 구하라.
유리수 를 으로 나눈 나머지는 다음과 같이 정한다. 심사위원은 가 어떤 기약분수 와 같고, 가 에 대한 역원을 가짐을 보장한다. 이때 를 으로 나눈 나머지는 이상 이하의 정수 로서, 가 으로 나누어떨어지는 값이다. 이러한 는 하나뿐이다.
입력
첫째 줄에 패턴의 길이 ()이 주어진다.
둘째 줄에는 공백으로 구분된 정수 () 개가 주어진다. 입력은 순열 패턴임이 보장된다.
출력
정수 개를 출력한다. 번째 정수는 를 으로 나눈 나머지이다.
힌트
두 번째 예제에서 모든 는 이며, 이를 으로 나눈 나머지는 499122178이다.