2024/4/6(土)

libmysqlを色々触った。だいぶ冗長にはなるが、やってやれないことはない。しかしもう少し良い感じのラッパを作りたいとは思う。


ABC348に出た。

A: やるだけ

B: 全探索

C: 色ごとに最小値をとって最大値を見つける

D: 解けないが???と思って問題文をよく読んだら「エネルギーを$E_i$に”します”」だった。それまでの状態に依らず薬から薬へ行けるかどうかが決まっているので、距離を計算してそれをはじき出しあとは普通にBFSなりUFなりでスタート地点から行けるかどうか見ればよい。

E: $C_i$は各頂点に数字がふってあるものと見ればよいことに注意。まずこれを読み解くのに少し時間がかかった。木上で1辺を移動した時を考えると、移動前の頂点にぶら下がる頂点は全て距離1遠くなり、逆に移動後の頂点にぶら下がる頂点は全て1近くなる。これを踏まえて式を考察すると、部分木の$C_i$の総和が分かればそれを足したり引いたりしてO(1)で隣の頂点のf(x)が求められることが分かる。

辺がどれだけ寄与するかとかちらっと考えたがそういう分解で数え上げるみたいなやつではなかった。どうやら解説見る限りそういう解法もあったようだが。

F: 絶対bitsetだろうと思ったがやり方が思いつかず、終わった。

Categories: