kwm_t

kwm_tのメモ

ABC217

■A - Lexicographic Order
stringの比較

■B - AtCoder Quiz
setとかで適当に

■C - Inverse of Permutation
書いてるとおりにやる

■D - Cutting Woods
setのlowerbound

■E - Sorting Queries
priority_queueとqueue

■F - Make Pair
区間dpでしょというのはわかる。
遷移を考える。
区間[i,j]において
iのペアをkをすると
dp[i][j] = Σdp[i+1][k-1] * dp[k+1][j] * Binomial((j-i+1)/2,(k-i+1)/2)

■G - Groups
ただの数学っぽいので特攻する。
ラスト10分で方針転換をしてぎりぎりAC
modで分類したものを、グループ数がk個丁度を無視して振り分ける
これは簡単に求まる。
そこから
k個未満のグループしかできていない可能性があるので、
それより前に求めたものを使い引いておく。
出力するのはそれに並び替えを考慮しifact[k]をかけたもの

■H - Snuketoon
問題がSlopeTrickといっている。
SlopeTrickは履修済み。
必要な操作はスライドとadd
毎回SlopeTrickのスライドは頭が壊れそうになる。
addするときにスライドさせても問題ないように作らないと壊れる。
具体的には、
サンプル1だと最初にaddするのは3-xを左側加算するのではなく
1-xを左側加算して、定数に2を加えるといい。