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

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

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

✧ ✦ Spark of Exam Luck ✦ ✧

返回题目

题解

구간 [L,R][L,R][L,R] 안의 정점과 그 사이의 모든 간선으로 이루어진 유도 부분 그래프를 생각하자.

모든 학생에게 불씨가 도달하려면 이 그래프가 연결되어 있어야 한다. 연결된 그래프에 사이클이 있으면, 시작점에서 사이클에 도달한 불씨가 사이클을 계속 돌 수 있으므로 전달이 끝나지 않는다. 반대로 트리에서는 각 정점까지의 유일한 경로를 따라 불씨가 전달된다. 이때 마지막 전달 시각은 최대 R−L≤N−1R-L \le N-1R−L≤N−1이므로 시간 조건도 만족한다. 따라서 유도 부분 그래프가 트리인 구간의 수를 세면 된다.

작은 입력에서는 모든 구간을 직접 확인할 수 있다. 각 구간에서 BFS를 실행하여 모든 정점에 도달하는지 확인하고, 내부 간선 수가 정점 수보다 하나 작은지도 확인한다. 시간 복잡도는 O(N2(N+M))O(N^2(N+M))O(N2(N+M))이고 공간 복잡도는 O(N+M)O(N+M)O(N+M)이다.

전체 제한에서는 왼쪽 끝 LLL을 고정하고 오른쪽 끝 RRR을 늘리며 DSU로 연결 성분을 관리한다. 새 정점 RRR을 추가한 뒤, L≤u<RL \le u < RL≤u<R인 이웃 uuu와의 간선을 추가한다. 같은 연결 성분 안의 간선을 추가하게 되면 사이클이 생긴다. 이후 을 늘려도 이 사이클은 사라지지 않으므로 해당 의 탐색을 끝낸다. 사이클이 없는 상태에서 연결 성분이 하나라면 정답에 을 더한다. 연결되어 있지 않더라도 나중에 추가되는 정점이 성분을 이어줄 수 있으므로 탐색을 계속해야 한다.

각 정점에는 자신보다 번호가 작은 이웃만 내림차순으로 저장한다. 이웃 번호가 LLL보다 작아지는 즉시 순회를 끝내야 한다. 고정된 LLL에 대해 성공하는 합치기는 최대 N−LN-LN−L번이고, 실패하는 합치기는 최대 한 번이다. 정점 순회와 DSU 초기화를 합쳐 전체 시간 복잡도는 O(Mlog⁡N+N2α(N))O(M\log N + N^2\alpha(N))O(MlogN, 공간 복잡도는 이다.

정답은 최대 N(N+1)/2=50 005 000N(N+1)/2=50\,005\,000N(N+1)/2=50005000이다. DSU 크기는 최대 10 00010\,00010000, 간선 수는 최대 1 000 0001\,000\,0001000000이므로 모든 계산은 부호 있는 비트 정수 범위 안에 있다.

Solution written by GPT6

RRR
LLL
111
+
N2α(N))
O(N+M)O(N+M)O(N+M)
6464
64