DOJ logoDOJ
問題
最近追加された問題保存した問題Workbooks
カテゴリDLCコンテストグループチーム掲示板
ランキング
正解数ランキングストリークランキングDOJ Powerランキング
提出状況
問題募集ログイン新規登録
DOJ logoDOJ

OI形式のサブタスク採点、Eloレーティング、Discord認証を備えたオンラインジャッジです。

問題
問題一覧カテゴリ
コミュニティ
コンテストランキング掲示板お知らせ外部のコンテストを開催するガイド
アカウント
ログイン新規登録ジャッジ状態
ポリシー
利用規約DLCの利用規則プライバシーAPI 文書言語ランタイムコンテストの順位報酬レーティングとパフォーマンス
© 2026 DOJ
All rights reserved
解説

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