DOJ logoDOJ
문제
최근 추가된 문제들저장한 문제
카테고리DLC대회그룹팀게시판
랭킹
문제 풀이 랭킹스트릭 랭킹DOJ Power 랭킹
현황
문제 제안로그인회원가입
DOJ logoDOJ

OI 서브태스크 채점, Elo 레이팅, Discord 인증을 갖춘 커뮤니티 온라인 저지.

문제
문제 목록카테고리
커뮤니티
대회랭킹게시판공지사항외부 대회 개최이용 안내
계정
로그인회원가입채점 현황
정책
이용약관DLC 이용 규칙개인정보 처리방침API 사용 설명서언어별 채점 환경대회 순위 보상레이팅과 퍼포먼스
© 2026 DOJ
모든 권리 보유
해설

빠르게 계산하기

문제로 돌아가기

해설

길이가 NNN, 각 항의 값이 111 이상 MMM 이하의 정수인 수열의 개수를 세는 상황을 생각해 보자.

먼저, 모든 항이 같은 수열은 총 MMM가지이다.

따라서 222개 이상의 서로 다른 값을 포함하는 수열은 MN−MM^N-MMN−M가지가 존재한다. 이 중 최솟값의 위치를 AiA_iAi​, 최댓값의 위치를 AjA_jAj​라고 하자. 만약 최댓값 또는 최솟값이 여러 위치에 존재한다면 그 중 가장 번호가 작은 것으로 가정한다.

이때 i<ji<ji<j인 경우와 i>ji>ji>j인 경우가 일대일 대응됨을 확인할 수 있다. ({A1,A2,…,AN}↔{M+1−A1,M+1−A2,…,M+1−AN}\{A_1, A_2, \dots, A_N\} \leftrightarrow \{M+1-A_1, M+1-A_2, \dots, M+1-A_N\})

따라서 i<ji<ji<j인 경우는 총 MN−M2\frac{M^N-M}{2}2MN−M​가지이다.

Aj−Ai=dA_j-A_i=dAj​−Ai​=d인 상황을 생각해 보자. 이 조건을 만족하도록 Ai,AjA_i, A_jA의 값을 정하는 경우의 수는 가지이다.

p≠i,p≠jp\neq i, p\neq jp=i,p=j인 ApA_pA를 정하는 방법의 수는 에 대해 다음과 같다.

  • 1≤p<i1\le p< i1≤p<i : Ai<Ap<AjA_i<A_p<A_jAi​<Ap, 총 가지

따라서 i<ji<ji<j인 수열의 개수는 ∑d=1M(M−d)∑1≤i<j≤N(d−1)i−1dj−i−1(d+1)N−j\sum_{d=1}^M (M-d)\sum_{1\le i<j\le N} (d-1)^{i-1}d^{j-i-1}(d+1)^{N-j}∑d=1가지이며, 이는 구해야 하는 식과 일치한다.

따라서 답은 MN−M2\frac{M^N-M}{2}2MN−M​이며, O(N)O(N)O(N) 또는 의 시간복잡도로 계산할 수 있다.

{
A1​
,
A2​
,
…
,
AN​
}
↔
{M+
1−
A1​,M+
1−
A2​,…,M+
1−
AN​}
i​
,
Aj​
M−dM-dM−d
p
​
ppp
​
<
Aj​
Aj−Ai−1=d−1A_j-A_i-1=d-1Aj​−Ai​−1=d−1
  • i<p<ji< p< ji<p<j : Ai≤Ap<AjA_i\le A_p<A_jAi​≤Ap​<Aj​, 총 Aj−Ai=dA_j-A_i=dAj​−Ai​=d가지
  • j<p≤Nj< p\le Nj<p≤N : Ai≤Ap≤AjA_i\le A_p\le A_jAi​≤Ap​≤Aj​, 총 Aj−Ai+1=d+1A_j-A_i+1=d+1Aj​−Ai​+1=d+1가지
  • M
    ​
    (
    M
    −
    d)∑1≤i<j≤N​(d−
    1)i−1dj−i−1(d+
    1)N−j
    O(log⁡N)O(\log N)
    O(logN)