시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
12 초 (추가 시간 없음) | 1024 MB (추가 메모리 없음) | 22 | 13 | 7 | 87.500% |
$N$명의 BOJ 대학교 학생들을 조들로 나눠, 각자 조별 과제를 하게 하려고 한다. 그런데, 어떤 학생들은 싫어하는 학생이 한 명 존재해 그 학생과는 조원을 하지 않으려고 한다. $i$번 학생이 싫어하는 학생은 $A_i$번 학생이다. 단, $A_i=i$인 경우는 싫어하는 학생이 존재하지 않는 경우이다.
$1$부터 $N$까지의 각 $M$에 대해, 여러분은 모든 학생이 싫어하는 학생과는 같은 조가 되지 않도록 학생들을 비지 않은 $M$개의 조로 나누는 경우의 수를 구해야 한다. 조로 나누는 두 방법이 다르다는 것은 한 방법에서만 같은 조에 속하는 학생 쌍이 존재함을 의미한다.
첫 번째 줄에 $N$이 주어진다.
두 번째 줄에 $A_1,\dots ,A_N$이 공백으로 구분되어 주어진다.
$M=1$부터 $N$까지 순서대로 학생들을 $M$개의 조로 나누는 경우의 수를 소수 $998244353$로 나눈 나머지를 공백으로 구분하여 출력한다.
101 2 3 4 5 6 7 8 9 10
1 511 9330 34105 42525 22827 5880 750 45 1
모든 학생이 싫어하는 학생이 없다. 이 경우 $N$명의 학생을 $M$개의 조로 나누는 경우의 수는 제2종 스털링 수 $S(N, M)$이다.
102 1 4 3 6 7 5 1 3 5
0 0 288 3600 9056 7846 2890 489 37 1
5, 6, 7번 학생이 각각 다른 조에 속해야 하므로 2개 이하의 조로는 학생들을 나눌 수 없다.
103 1 4 1 5 9 2 6 5 3
0 0 192 2724 7420 6811 2625 461 36 1
Contest > BOJ User Contest > Good Bye, BOJ > Hello, BOJ 2025! G번