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

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

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

Relay Stations in the Mountains

返回题目

题解

조합의 값을 (nr)\binom{n}{r}(rn​)로 나타내며, 범위를 벗어난 경우에는 000으로 정의한다. 모든 조합은 998 244 353998\,244\,353998244353으로 나눈 나머지로 계산한다.

D=1D=1D=1인 경우

지름이 111 이하라는 것은 선택한 모든 중계기 쌍이 직접 통신할 수 있다는 뜻이다.

선택한 중계기 중 높이가 가장 낮은 것들을 생각하자. 그중 가장 왼쪽 중계기의 위치를 ppp로 고정한다. 다른 선택된 위치 qqq는 다음 조건을 만족해야 한다.

  • p<qp<qp<q이면 hq≥hph_q\ge h_phq​≥hp​이고, 와 가 직접 통신할 수 있다.

왼쪽에서 높이가 같은 위치를 제외하는 이유는 ppp가 가장 왼쪽의 최저 중계기이기 때문이다. 오른쪽에서는 높이가 같은 중계기를 하나 더 선택할 수 있다.

위 조건을 만족하는 위치들 중 아무 위치나 함께 선택해도 전체가 완전 그래프가 된다. 예를 들어 p<a<bp<a<bp<a<b이고 ppp가 bbb와 직접 통신한다면, hbh_bhb​는 와 사이의 모든 높이보다 크므로 와 도 직접 통신한다. 왼쪽이나 의 양쪽에 위치한 두 중계기에 대해서도 같은 방식으로 확인할 수 있다.

ppp의 오른쪽 후보는 다음과 같은 사슬을 이룬다.

  • 처음에는 오른쪽에서 처음 등장하는 높이 hph_php​ 이상의 산으로 이동한다.
  • 그 다음부터는 현재 산보다 엄격히 높은 산 중 오른쪽에서 처음 등장하는 산으로 이동한다.

왼쪽 후보는 이전의 엄격히 높은 산을 계속 따라가면 된다. 다음 크거나 같은 원소와 이전 또는 다음의 엄격히 큰 원소는 단조 스택으로 구할 수 있다. 각 사슬의 길이도 점화식으로 계산할 수 있다.

ppp에서 선택 가능한 다른 위치의 수를 cpc_pcp​라 하면, ppp를 기준으로 세는 방법의 수는

(cpK−1)\binom{c_p}{K-1}(K−1cp​​)

이다. 모든 ppp에 대해 더하면 된다. 각 설치 방법은 가장 왼쪽의 최저 중계기에 의해 정확히 한 번 세어진다.

D≥2D\ge 2D≥2인 경우

선택한 중계기의 최고 높이를 HHH라 하고, 높이가 HHH인 선택된 위치를

p1<p2<⋯<pmp_1<p_2<\cdots<p_mp1​<p2​<⋯<p

이라 하자.

높이가 HHH 이상인 모든 산을 위치 순서대로 나열한다. p1,p2,…,pmp_1,p_2,\ldots,p_mp1​,p2​,…,p은 이 나열에서 연속해야 한다. 사이에 선택되지 않은 높이 이상의 산이 있다면, 그 산을 사이에 두고 양쪽의 어떤 선택된 중계기도 직접 통신할 수 없으므로 그래프가 연결되지 않는다.

이 나열에서 p1p_1p1​의 바로 이전 위치를 q0q_0q0​, pmp_mp의 바로 다음 위치를 이라 하자. 존재하지 않으면 각각 , 로 생각한다. 다음 세 수를 정의한다.

L=p1−q0−1,I=pm−p1−m+1,R=qm+1−pm−1.\begin{align*} L &= p_1-q_0-1,\\ I &= p_m-p_1-m+1,\\ R &= q_{m+1}-p_m-1. \end{align*}LIR​

최고 높이보다 낮은 중계기는 q0q_0q0​과 qm+1q_{m+1}qm+1​ 사이에서만 선택할 수 있다. LLL은 첫 최고 중계기의 왼쪽 영역, 은 마지막 최고 중계기의 오른쪽 영역, 는 최고 중계기들 사이의 내부 영역에 있는 후보 수이다.

최고 중계기 p1,p2,…,pmp_1,p_2,\ldots,p_mp1​,p2​,…,pm​은 순서대로 경로를 이룬다. 내부 영역의 중계기는 양옆의 가까운 최고 중계기에 연결된다. 왼쪽 영역의 중계기는 에만, 오른쪽 영역의 중계기는 에만 연결될 수 있다.

왼쪽 영역에서 하나 이상 선택했는지를 aaa, 오른쪽 영역에서 하나 이상 선택했는지를 bbb라 하자. a,b∈{0,1}a,b\in\{0,1\}a,b∈{0,1}이다. D≥2D\ge2D≥2이므로 같은 영역이나 같은 내부 구간에 있는 두 낮은 중계기 사이의 거리 는 자동으로 허용된다. 지름 조건에서 추가로 확인할 값은

m−1+a+bm-1+a+bm−1+a+b

이며, 이것이 DDD 이하여야 한다.

남은 K−mK-mK−m개의 중계기를 고르는 방법은 다음과 같다.

  • m≤D−1m\le D-1m≤D−1이면 양쪽 바깥 영역을 모두 사용해도 된다. (L+I+RK−m)\binom{L+I+R}{K-m}(K−mL+I+R​

이제 모든 가능한 최고 중계기 구간을 열거한다. 산을 높이 내림차순으로 처리하면서, 현재 높이 이상의 산 위치를 순서 집합에 저장한다. 같은 높이의 위치는 한꺼번에 삽입한다. 순서 집합에서 현재 높이의 위치들이 이루는 각 연속 구간마다 길이 D+1D+1D+1 이하의 모든 부분 구간을 열거한다. 각 부분 구간이 하나의 p1,…,pmp_1,\ldots,p_mp1​,…,pm​ 후보가 된다.

각 위치는 왼쪽 끝점으로 최대 D+1D+1D+1개의 구간만 만든다. 따라서 시간 복잡도는 테스트 케이스마다

O(Nlog⁡N+ND)O(N\log N+ND)O(NlogN+ND)

이고, 메모리 복잡도는 O(N)O(N)O(N)이다. D=1D=1D=1인 경우의 시간 복잡도는 O(N)O(N)O(N)이다.

Solution written by GPT5.6

pp
p
qqq
  • q<pq<pq<p이면 hq>hph_q>h_phq​>hp​이고, ppp와 qqq가 직접 통신할 수 있다.
  • ppp
    bbb
    aaa
    bbb
    ppp
    m
    ​
    m
    ​
    HHH
    m
    ​
    qm+1q_{m+1}qm+1​
    000
    N+1N+1N+1
    =p1​−q0​−1,
    =pm​−p1​−m+1,
    =qm+1​−pm​−1.
    ​
    RR
    R
    III
    p1p_1
    p1​
    pmp_mpm​
    222
    )
  • m=Dm=Dm=D이면 양쪽 바깥 영역을 동시에 사용하면 안 된다. (I+RK−m)+(L+IK−m)−(IK−m)\binom{I+R}{K-m}+\binom{L+I}{K-m}-\binom{I}{K-m}(K−mI+R​)+(K−mL+I​)−(K−mI​)
  • m=D+1m=D+1m=D+1이면 두 바깥 영역을 모두 사용하면 안 된다. (IK−m)\binom{I}{K-m}(K−mI​)
  • m>D+1m>D+1m>D+1이면 불가능하다.