SlideShare a Scribd company logo
I: Tree-Light
原案・解説: 胡桃沢(@ukuku09)
問題概要
• 頂点数nの木が与えられる
• 各頂点は0∼9のいずれかの数字を一つだけもつ
• 以下の2種類のクエリを合計q個処理せよ
• count(r,x,y): T(r)にあるx∼yの個数の和を求める
• change(r,x,y): T(r)にあるxを全てyにする
✴ T(r) … 頂点rを根とした部分木
解説
セグ木で殴る。(以上)
解説
• 最終的にはセグ木で殴るので、数列で考える
• 数列の長さはn
• 各要素は0∼9のいずれかの数字を一つだけもつ
• count(l,r,x,y): [l,r)にあるx∼yの個数の和を求める
• change(l,r,x,y): [l,r)にあるxを全てyにする
解説
• count(l,r,x,y)クエリ
• 分割した区間ごとに0∼9のそれぞれの個数がわか
れば良い
• 各区間に要素数10の配列A[10]をもたせる
• A[i]にはその区間にあるiの個数を格納
• その区間のx∼yの個数の和はA[x]+…+A[y]
解説
• change(l,r,x,y)クエリ
• 各区間のAの再計算はA[y]+=A[x],A[x]=0(x!=y)
• [l,r)に入るの全ての区間についてやってたら遅い
• O(log n)くらいでやりたい
➡ 遅延評価する(自明)
➡ じゃあどうやって変更を子に伝搬させる?
解説
• change(l,r,x,y)クエリ
• 遅延評価にもやっぱり要素数10の配列B[10]を使う
• B[i] := iの変更後の数字
• B[i]=xであるような全てのB[i]の中身をyにする
• Aの更新はA [B[i]]+=A[i](A : 更新後のA)
• Bの変化した部分をうまく子に伝搬
解説
• 伝搬の例
0 2 4 3 4 6 1 7
1 0 2 5 3 5 6 7
親
子
解説
• 子のBの値をインデックスとして親のBを参照
0 2 4 3 4 6 1 7
1 0 2 5 3 5 6 7
親
子
解説
• 親のBから子へ値を伝搬
• 伝搬後、親のBは数列0,1,...,N-1に書き換えておく
0 2 4 3 4 6 1 7
2 0 4 6 3 6 7 7
親
子
解説
• ここまで数列で考えてきたが、木の場合は?
➡ 木を数列に落とし込むテクニック= Euler-Tour
• 根からのDFSでの訪問順に頂点を並べる
• 今回は最初の訪問の順序と部分木の大きさがわかればOK
• count(r,x,y)→count(ord[r],ord[r]+subsz[r],x,y)
• change(r,x,y)も同様
まとめ
• 与えられた木からDFSの訪問順序で数列をつくる
• 上で得た数列とSegment Treeを対応付ける
• 遅延評価で範囲更新をしながら答えを求める
• 時間計算量: O(n + q log n)
๏ 空間計算量に注意!
ジャッジ解
• dohatsu(C++): 148 lines
• haji(C++): 101lines
• kawabys(C++): 86 lines
• uku(C++): 122 lines
結果
• First Submission
• Online: pekempey 41 min
• First Accepted
• Online: pekempey 41 min
• Success Rate: 25.00 % (4/16)

More Related Content

What's hot

AtCoder Regular Contest 017
AtCoder Regular Contest 017AtCoder Regular Contest 017
AtCoder Regular Contest 017
AtCoder Inc.
 
競技プログラミングの楽しみ
競技プログラミングの楽しみ競技プログラミングの楽しみ
競技プログラミングの楽しみ
na_o_ys
 
AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説
AtCoder Inc.
 
AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説
AtCoder Inc.
 
【第34回数学カフェの予習会#1】微分と代数学のつながり
【第34回数学カフェの予習会#1】微分と代数学のつながり【第34回数学カフェの予習会#1】微分と代数学のつながり
【第34回数学カフェの予習会#1】微分と代数学のつながり
MathCafe
 
IJPC C解説
IJPC C解説IJPC C解説
IJPC C解説
yutaka1999
 
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説
AtCoder Inc.
 
応用数学まとめ
応用数学まとめ応用数学まとめ
応用数学まとめ
TK D
 
AtCoder Regular Contest 044 解説
AtCoder Regular Contest 044 解説AtCoder Regular Contest 044 解説
AtCoder Regular Contest 044 解説
AtCoder Inc.
 
arc047
arc047arc047
arc047
AtCoder Inc.
 
第33回数学カフェ予習会#1 線形空間・射影空間の定義
第33回数学カフェ予習会#1 線形空間・射影空間の定義第33回数学カフェ予習会#1 線形空間・射影空間の定義
第33回数学カフェ予習会#1 線形空間・射影空間の定義
MathCafe
 
Square869120 contest #2
Square869120 contest #2Square869120 contest #2
Square869120 contest #2
AtCoder Inc.
 
CODE THANKS FESTIVAL 2014 A日程 解説
CODE THANKS FESTIVAL 2014 A日程 解説CODE THANKS FESTIVAL 2014 A日程 解説
CODE THANKS FESTIVAL 2014 A日程 解説
AtCoder Inc.
 

What's hot (15)

AtCoder Regular Contest 017
AtCoder Regular Contest 017AtCoder Regular Contest 017
AtCoder Regular Contest 017
 
競技プログラミングの楽しみ
競技プログラミングの楽しみ競技プログラミングの楽しみ
競技プログラミングの楽しみ
 
AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説
 
計算量
計算量計算量
計算量
 
AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説
 
【第34回数学カフェの予習会#1】微分と代数学のつながり
【第34回数学カフェの予習会#1】微分と代数学のつながり【第34回数学カフェの予習会#1】微分と代数学のつながり
【第34回数学カフェの予習会#1】微分と代数学のつながり
 
IJPC C解説
IJPC C解説IJPC C解説
IJPC C解説
 
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説
 
応用数学まとめ
応用数学まとめ応用数学まとめ
応用数学まとめ
 
AtCoder Regular Contest 044 解説
AtCoder Regular Contest 044 解説AtCoder Regular Contest 044 解説
AtCoder Regular Contest 044 解説
 
arc047
arc047arc047
arc047
 
第33回数学カフェ予習会#1 線形空間・射影空間の定義
第33回数学カフェ予習会#1 線形空間・射影空間の定義第33回数学カフェ予習会#1 線形空間・射影空間の定義
第33回数学カフェ予習会#1 線形空間・射影空間の定義
 
Arc041
Arc041Arc041
Arc041
 
Square869120 contest #2
Square869120 contest #2Square869120 contest #2
Square869120 contest #2
 
CODE THANKS FESTIVAL 2014 A日程 解説
CODE THANKS FESTIVAL 2014 A日程 解説CODE THANKS FESTIVAL 2014 A日程 解説
CODE THANKS FESTIVAL 2014 A日程 解説
 

Viewers also liked (20)

RUPC2017:G解説
RUPC2017:G解説RUPC2017:G解説
RUPC2017:G解説
 
RUPC2017:L解説
RUPC2017:L解説RUPC2017:L解説
RUPC2017:L解説
 
RUPC2017:全体の講評
RUPC2017:全体の講評RUPC2017:全体の講評
RUPC2017:全体の講評
 
RUPC2017:Hの解説
RUPC2017:Hの解説RUPC2017:Hの解説
RUPC2017:Hの解説
 
RUPC2017:Aの解説
RUPC2017:Aの解説RUPC2017:Aの解説
RUPC2017:Aの解説
 
RUPC2017:F解説
RUPC2017:F解説RUPC2017:F解説
RUPC2017:F解説
 
RUPC2017:Dの解説
RUPC2017:Dの解説RUPC2017:Dの解説
RUPC2017:Dの解説
 
RUPC2017:J解説
RUPC2017:J解説RUPC2017:J解説
RUPC2017:J解説
 
B pub
B pubB pub
B pub
 
RUPC2017:Bの解説
RUPC2017:Bの解説RUPC2017:Bの解説
RUPC2017:Bの解説
 
RUPC2017:Cの解説
RUPC2017:Cの解説RUPC2017:Cの解説
RUPC2017:Cの解説
 
RUPC2017:E解説
RUPC2017:E解説RUPC2017:E解説
RUPC2017:E解説
 
RUPC2017:K解説
RUPC2017:K解説RUPC2017:K解説
RUPC2017:K解説
 
E pub
E pubE pub
E pub
 
A pub
A pubA pub
A pub
 
F pub
F pubF pub
F pub
 
D pub
D pubD pub
D pub
 
C : 解説
C : 解説C : 解説
C : 解説
 
I : Traffic Tree
I : Traffic TreeI : Traffic Tree
I : Traffic Tree
 
全域木いろいろ
全域木いろいろ全域木いろいろ
全域木いろいろ
 

More from Takumi Yamashita

Deposited Ranges
Deposited RangesDeposited Ranges
Deposited Ranges
Takumi Yamashita
 
0: 全体の講評
0: 全体の講評0: 全体の講評
0: 全体の講評
Takumi Yamashita
 
M : 解説
M : 解説M : 解説
M : 解説
Takumi Yamashita
 
L : 解説
L : 解説L : 解説
L : 解説
Takumi Yamashita
 
K : 解説
K : 解説K : 解説
K : 解説
Takumi Yamashita
 
J : 解説
J : 解説J : 解説
J : 解説
Takumi Yamashita
 
H : hegemony get
H : hegemony getH : hegemony get
H : hegemony get
Takumi Yamashita
 
G : 解説
G : 解説G : 解説
G : 解説
Takumi Yamashita
 
F : 解説
F : 解説F : 解説
F : 解説
Takumi Yamashita
 
E : 解説
E : 解説E : 解説
E : 解説
Takumi Yamashita
 
D : 解説
D : 解説D : 解説
D : 解説
Takumi Yamashita
 
B potatoes
B  potatoesB  potatoes
B potatoes
Takumi Yamashita
 
A: 解説
A: 解説A: 解説
A: 解説
Takumi Yamashita
 

More from Takumi Yamashita (14)

Deposited Ranges
Deposited RangesDeposited Ranges
Deposited Ranges
 
RUPC2017:M問題
RUPC2017:M問題RUPC2017:M問題
RUPC2017:M問題
 
0: 全体の講評
0: 全体の講評0: 全体の講評
0: 全体の講評
 
M : 解説
M : 解説M : 解説
M : 解説
 
L : 解説
L : 解説L : 解説
L : 解説
 
K : 解説
K : 解説K : 解説
K : 解説
 
J : 解説
J : 解説J : 解説
J : 解説
 
H : hegemony get
H : hegemony getH : hegemony get
H : hegemony get
 
G : 解説
G : 解説G : 解説
G : 解説
 
F : 解説
F : 解説F : 解説
F : 解説
 
E : 解説
E : 解説E : 解説
E : 解説
 
D : 解説
D : 解説D : 解説
D : 解説
 
B potatoes
B  potatoesB  potatoes
B potatoes
 
A: 解説
A: 解説A: 解説
A: 解説
 

Recently uploaded

TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 

Recently uploaded (8)

TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 

RUPC2017:I解説