とある数学徒の雑記帳

数学の勉強してます。日々、気になったことを適当に書き綴っています。

AtCoder Beginner Contest 253 解答メモ

A問題

if文を用いた条件分岐を用いる bが中央値であるということはa<=b<=cまたはc<=b<=aであるということ。 Juliaではこのままの表記で以下のように書ける。

if a<=b<=c || c<=b<=a
    println("Yes")
else
    println("No")
end

B問題

oがある場所を探索する。

oのある場所が2ヶ所わかったら移動回数を求めることができるが、これはマンハッタン距離に等しい。

C問題

SortedSetを用いてリストSに属している整数を管理することで最大と最小の取得を高速に行う。

ライブラリのDataStructures.jlをインポートすることでSortedSetが使える。

D問題

包除原理を用いる。

1からNまでの和からAの倍数の和とBの倍数の和を引いて、AとBの最小公倍数の和を足すことで答えが計算できる。

E問題

DPを用いそうなことはわかるが実装できず。

遷移にかかる計算を高速化する工夫に累積和を用いる。