Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
CodeForces#162 Div1-E
Search
snuke
January 20, 2013
Programming
370
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CodeForces#162 Div1-E
CodeForces#162 Div1-E の解説
snuke
January 20, 2013
More Decks by snuke
See All by snuke
puzzleLT.pdf
snuke
0
750
JOI2015-2016 春合宿 day 2 Sandwich 解説
snuke
0
330
JOI2015-sp-day4-walls-anothersolution
snuke
0
260
JOI2014 春合宿 day 2 スタンプラリー 解説
snuke
0
230
NPCA合宿きょーぷろ講義
snuke
0
380
JOI 2013 春合宿 day4-1 messenger 解説
snuke
0
390
CodeForces162 Div1-E
snuke
3
16k
SRM 555 Div 1 easy, Div 2 medium
snuke
1
480
SRM 555 Div 1 hard
snuke
1
600
Other Decks in Programming
See All in Programming
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
150
Laravelのアプリケーションをどこにデプロイするか #ツナギメオフライン.9
akase244
0
130
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
460
巨大モノリシックアプリ モダン化大作戦
ktcryomm
0
970
業務時間外もAIに働いてもらう話
colorful12
3
10k
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
480
アクセシビリティから考える情報設計
high_g_engineer
0
370
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
110
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
230
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
6.6k
What We Talk About When We Talk About XP
m_seki
2
600
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.6k
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
490
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Six Lessons from altMBA
skipperchong
29
4.5k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Prompt Engineering for Job Search
mfonobong
0
450
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
990
Product Roadmaps are Hard
iamctodd
55
13k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
330
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
570
Transcript
CodeForces #162 Div1-E RodeSideTrees writer: snuke
֓ཁ 東西の道にそって木を植えたり切ったりするクエリ を処理し、各クエリ後に西→東方向のLISを求める 木は各クエリ前に1m ずつ伸びる 植える木の高さは10m 以下 切り倒す木は西から10本目以内 木の本数 N
≦ 10^5, クエリ数 M ≦ 2*10^5
۪ͳղ๏ 毎回 LIS を求める。 O(M N log N)となり、さすがに間に合わない。
ఆղ まず、木の成長を無視するために、 t 個目のクエリの時に植えられる木の高さを h から h-t に変換しておきます。 んで、木の(場所,高さ)を x-y平面上にぷろっとしてみる。
ఆղ ߴ͞ ॴ こんな感じ? すると・・・
ఆղ 常に右上方向に辿る最長経路がLISになってる! この場合、LISは赤いやつになります。 LISの普通の条件「hi < hi+1 」と暗黙の条件「xi < xi+1 」からくる特性
ߴ͞ ॴ
ఆղ さて、この問題におけるクエリは 下から10番目以内に木を追加 左から10番目以内の木を削除 と言い換えられます。 ߴ͞ ॴ
ఆղ とりあえず、各木に Longest Decreasing Subsequence の長さを記録することにしてみます。 図の木のところに LDS の長さを書き込んでみる。 木iの右上の領域中の最大値
+ 1 が 木iのところに書き込まれるシステムらしい。 ߴ͞ ॴ 1 1 1 2 2 3 4
ఆղ 各クエリを爆速で処理する方法を考えてみよう。 ある木の LDS には右上の領域にある木のみが影響を及ぼし、 左 or 下 にある木は影響を及ぼさないことを利用しよう。 ߴ͞
ॴ 1 1 1 2 2 3 4
ఆղ 植えるクエリ (下から10番目以内に木を追加) 植える木よりも低い木をいったん抜いて、 順番に植え直す。 ߴ͞ ॴ 1 1 1
2 2 3 4
ఆղ 切るクエリ (左から10番目以内の木を削除) 切る木よりも左の木をいったん抜いて、 切る木以外を順番に植え直す。 ߴ͞ ॴ 1 1 1
2 2 3 4
ఆղ さて、ここで必要になるデータ構造はなんでしょう? 2次元segtree? → 更新にO(log^2 N)かかり、しかも定数項重そうな ので多分TLEします。 ߴ͞ ॴ
1 1 1 2 2 3 4
ఆղ 植えるクエリの時には x 方向の1次元segtree 切るクエリの時には y 方向の1次元segtree だけしか必要ない! O(log N)しかも定数項軽め!
※ただし、ノードの更新は両方のsegtreeに適応しないといけません。 ߴ͞(y) ॴ (x) 1 1 1 2 2 3 4
O(N * 10 * log N) くらい ܭࢉྔ
作問するにあたってLISとちょっと 仲良くなれた気がする。 ご清聴(?)ありがとうございました! CF#162へのご参加ありがとうございました! ·ͱΊ ←twitter(@the_nikaidoes)ͷΞΠίϯ