ABの二完。Cを考えているときに体調が悪くなり撤退。
No.2394 部分和乗総和
自力AC。
しばらく分からなかったが、形式的ベキ級数に思いを馳せたら解けた。
No.2395 区間二次変換一点取得
自力AC。
各indexごと独立なので、各indexについて何回クエリが適応されているかだけ見れば良い。
問題文を理解するのがちょっと難しいけど、理解してしまえばBやCより簡単では。
Codeforces Round 888 (Div. 3)
— titia (@titia_til) July 25, 2023
B 奇数偶数に分けてソート
C A[0]を前からk個、A[-1]を後ろからk個
D 差を取って場合分け
E x(達)からyが作れるとき、x→yの辺を引き、入次数0のものから順に決める
F 上の桁から同じもの同士をまとめる分割統治
G 並列二分探索で良いと思うけどTLEが取れず。
F あるマスが黒だとその下のマスも黒い。ので、列ごとに見ると「xマスより下が黒」という状態で表せる。これを状態としてDP。
— titia (@titia_til) July 22, 2023
Codeforces Round 886 (Div. 4)
— titia (@titia_til) July 21, 2023
D ソートする
E 計算すると二次方程式になる
F 計算量は調和級数
G x,y,x+y,x-yについてCounter
H 重み付きUnion-find
freee プログラミングコンテスト2023(AtCoder Beginner Contest 310) D~
— titia (@titia_til) July 15, 2023
Fどれも苦戦したがFまで。
D 答えの最大値が小さそうなので雑にDFS書いたら間に合った。
E ランレングス圧縮してメモ化再帰で解いた。もっと簡単な方法がありそうだけど分からず。
F 今までに現れた和の種類2^10個をもってDP
D 一の位が0や5以外なら、一の位は2→4→8→6→2→……の繰り返しになる。その間、sは+20、kは-4するので、大体(s+20x)*(k-4x)の最大値を求めれば良い。このxを(微分か平方完成かで)求めてその周囲を調べる。
— titia (@titia_til) July 16, 2023