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

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

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

CHOICE

返回题目

题解

오일러 투어로 각 정점 xxx의 서브트리를 구간 [inx,outx][in_x,out_x][inx​,outx​]에 대응시킨다.

우현이의 현재 위치를 uuu라 할 때, 각 정점 vvv에 대해 d(v)=dist(u,v)d(v)=\mathrm{dist}(u,v)d(v)=dist(u,v)를 유지한다. 우현이가 uuu에서 인접한 로 움직이고 간선의 길이가 라면, 두 정점을 연결하는 간선을 제거했을 때 쪽 컴포넌트의 정점까지의 거리는 감소하고, 나머지 정점까지의 거리는 증가한다.

특히 xxx가 uuu의 자식이면 모든 정점의 거리에 www를 더한 후 xxx의 서브트리의 거리에 2w2w2w를 뺀다. 반대로 xxx가 uu의 부모이면 모든 정점의 거리에서 를 뺀 후 의 서브트리의 거리에 를 더한다.

세그먼트 트리의 각 구간에서 선택된 정점과 선택받지 못한 정점까지의 거리 최솟값을 따로 저장한다. 구간 거리 덧셈은 두 최솟값 모두에 적용하고, 구간 상태 반전은 두 최솟값을 교환한다. 두 연산은 지연 전파로 처리할 수 있다. 333번 쿼리의 답은 세그먼트 트리 루트가 저장하는 선택된 정점까지의 거리 최솟값이며, 선택된 정점이 없으면 −1-1−1이다.

전처리는 O(N)O(N)O(N), 각 쿼리는 O(log⁡N)O(\log N)O(logN) 시간이고, 메모리는 O(N)O(N)O(N)이다. 가중치 합과 구간 덧셈은 long long으로 처리한다.

xx
x
www
xxx
www
www
u
www
uuu
2w2w2w