ABC220
A - Find Multiple
$ \left\lfloor \frac{B}{C} \right\rfloor * C \geq A なら左辺が解。だめなら-1。
B - Base K
10進法変換
C - Long Sequence
以上ではなく”超える”。
周回する分は$ \left\lfloor \frac{X}{\sum_{i=1}^N{A_i}} \right\rfloor。
残りは愚直に一周する。
D - FG operation
動的計画法
$ DP \lbrack i \rbrack \lbrack j \rbrack =$ i回目まで操作したとき、左端が$ jになる通り数。
E - Distance on Large Perfect Binary Tree
https://scrapbox.io/files/6151c01873c814001ff593b6.png
E問題は、「距離がDの頂点の組(i,j)で、i,jのLCAが頂点vであるもの」の個数をvごとに求めて足せばいいのだ!」
公式解説
$ kが満たすべき条件は、
①$ 0 < k < D
→$ 1 \leq k \leq D-1
②$ d + k \leq N-1
→$ k \leq N-1-d
③$ d + D - k \leq N-1
→$ k \geq d + D - (N-1)
よって
$ max(1, d+D-(N-1)) \leq k \leq min(D-1, N-1-d)
$ kの通り数は
$ min(D-1, N-1-d) - max(1, d+D-(N-1)) +1
F - Distance Sums 2
全方位木DP
部分木のサイズで調整しながら遷移する。ある頂点から根方向に行くとき、(その頂点を根とする部分木)に属する頂点は遠ざかり、残りは近づく。葉方向ならその逆。
#完全二分木
#LCA
#ABC