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

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

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

Rabbit

返回题目

题解

먼저 기존 그래프의 Kruskal reconstruction tree를 만든다. 어떤 두 정점 사이의 최대 병목값은 Kruskal tree에서 두 정점의 LCA 값으로 표현된다.

정점 ttt에서 끝나는 여행을 고정하자. 정점 vvv의 마나 하나를 kkk번째로 줍는다면, 그 직후 마나 kkk개를 들고 vvv에서 ttt까지 갈 수 있어야 한다. 따라서 각 마나 하나는 deadline을 가지는 작업으로 볼 수 있다.

deadline이 ddd인 마나가 ccc개 있을 때의 greedy 전이는

x↦min⁡(d,x+c)x \mapsto \min(d,x+c)x↦min(d,x+c)

이다. 동치로, 답은

min⁡D(D+deadline이 D보다 큰 마나 수)\min_D \left(D+\text{deadline이 }D\text{보다 큰 마나 수}\right)Dmin​(D+deadline이 D보다 큰 마나 수)

로 볼 수 있다.

쿼리 간선 (s,t,w)(s,t,w)(s,t,w)를 추가하면, threshold가 www보다 작은 구간에서 sss쪽 컴포넌트와 ttt쪽 컴포넌트가 임시 간선으로 연결된다. 따라서 Kruskal tree 위에서 두 컴포넌트를 가중치 내림차순으로 끌어올리며 후보값을 갱신한다.

직접 쿼리마다 경로를 끝까지 올라가면 O(QH)O(QH)O(QH) 풀이가 된다. 특수조건 B에서는 기존 그래프가 경로이고 가중치가 무작위이므로 Kruskal tree가 랜덤 Cartesian tree가 되어 높이가 기대 O(log⁡N)O(\log N)O(logN)이다.

전체 풀이에서는 Kruskal tree 위에 특별 정점을 잡는다. 임의의 정점에서 가장 가까운 특별 조상까지의 거리가 O(N)O(\sqrt N)O(N​)이 되게 하면, 쿼리 하나는 직접 O(N)O(\sqrt N)O(N번만 올라가다가 특별 정점에 도달한다.

특별 정점 bbb가 한쪽 끝인 모든 남은 쿼리는 한 번에 처리한다. bbb에서 root까지의 chain에 있는 type X 연산의 prefix를 전처리하고, 반대쪽 endpoint들의 type Y 연산을 DFS 순서로 동시에 시뮬레이션하면 특별 정점 하나당 O(N)O(N)O(N)에 모든 값을 얻을 수 있다. 특별 정점 수가 O(N)O(\sqrt N)O(N개이므로 전체 시간 복잡도는 이다.

​
)
​
)
O(NN)O(N\sqrt N)O(NN​)