DOJ logoDOJ
题目
最近添加的题目收藏的题目Workbooks
分类DLC比赛小组团队讨论区
排名
解题数量排行榜连续解题排名DOJ Power 排行榜
评测状态
征题登录注册
DOJ logoDOJ

支持 OI 子任务计分、Elo 等级分和 Discord 认证的社区在线评测系统。

题目
题目列表分类
社区
比赛排名讨论区公告举办外部比赛指南
账号
登录注册评测状态
政策
服务条款DLC 使用规则隐私政策API 文档语言运行环境比赛排名奖励评级与表现
© 2026 DOJ
保留所有权利
题解

Fast Calculate

返回题目

题解

길이가 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)