No.2758 RDQ
解説AC。なんか、思ったより難しかった。
やれることが約数列挙くらいしかないので、約数列挙して何かしようと思うのは良いが、何をすれば良いか分からなかった。
約数ごとにやろうと思ったら、クエリごとにindexの二分探索で答えが求められるとは気付いかなかった。
G 「等差数列を加算するセグ木」とかMonotone Minimaとか考えて時間を食ったけど、SortedSetで山の先を管理すればOK。
— titia (@titia_til) May 11, 2024
E kそれぞれの場合の最小のものを埋め込み、長さnまで伸ばした。
— titia (@titia_til) May 13, 2024
F 連続i個で下にいけるようにしたい→その右上と左下に置く。これは二項係数で計算できる。0の場合は全体から引いた。
D heapqを二つ使う。一つ目のheapqにある要素で儲けを出すとし、その要素を無料で与えるとしたときの損失を入れておく。二つ目のheapqにはA[i]の値を入れる。一つ目のheapqから二つ目のheapqへ入れ、二つ目のheapqの要素を常にkにするようにして、答えを計算。
— titia (@titia_til) April 29, 2024
AtCoder Beginner Contest 352 Eまで。
— titia (@titia_til) May 4, 2024
A X<Z<Y or Y<Z<X
B 尺取り
C B-aが一番大きいものを最後に。
D SortedSetをお借りしました。
E Cの小さい順に。
F 2-SATで解けそう! と実装し始めたが上手くいかず終了。あれ、2-SATで解けないの?