ABC458 (2026/05/16)
https://atcoder.jp/contests/abc458/tasks
〇A問題
まーす.icon スライス.print(S[N : - N]).
まーす.icon Dまでは順調だったので,久々の5完したかったな......
まーす.icon 朗報:Youtuber の岩井星人 さん入水.おめでとう.勝手に競っていたのだけれど負けちゃった......
Kaplam.icon同上
N_N.icon Javaでは,S.substring(N, S.length() - N))
〇B問題
まーす.icon d = [(1, 0), (-1, 0), (0, 1), (0, -1)]のような移動のリストを作って実装.
Kaplam.icon if i != 0: ++; if i != w-1:++; みたいに端っこか検知する、6位...なかなかfastestが遠い
N_N.icon 上端でないとき++,下端でないとき++,左端でないとき++,右端でないとき++
〇C問題
まーす.icon $ \sum_{i \in \mathscr{C}} \min(i + 1, \operatorname{len} (S) - i) \quad (\mathscr{C} は文字列Sのうち,文字Cをとるような添え字の集合)
Kaplam.iconそれぞれのCについてびーって
N_N.icon まーす.iconさんと同じく.
〇D問題
Kaplam.icontatyamさんのSortedlistでTLE起こしたのでCodon版で投げてAC、pypy遅すぎ(一応正攻法ではないらしい)
Kaplam.icon↓がsortedcontainersで通ったらしくて納得いかなかったので検証、tatyamさんのSortedMultiSetよりsortedcontainersのSortedListの方が高速っぽかった、直接的なTLEの原因はこの間fastest関係で調整した入力関数が遅かったこと..._(:3」∠)_
Kaplam.iconいやそんなこともない? 少なくともSortedSetと違ってtatyamさんのSortedMultiSetはそこまで速度差出ないっぽい
まーす.icon sortedcontainersのSortedListで実装.ライブラリがあれば簡単.
N_N.icon 自作の SortedList でTLE.ArrayList ベースの手抜きだったのが敗因.仕方がないので,TreeMap でソート済み多重集合を実装する.基本的な考え方は,AもBも中央値より大きかった場合,中央値を1つ後ろ,AもBも中央値より小さかった場合,中央値を1つ前にする.
〇E問題
kakip.icon最初からずってやってたけどできない 2で1と3を分ける個数ごとに計算したい気持ち なんか入力2が合わない わかったかも、横着して実装間違えてた atcoder.modint使うとTLE 消すと1191msでAC クラス使うだけで2倍以上遅くなるんか...
Kaplam.icon 1と2のみにして3を入れる位置に~ってわかんないな~ってなってたけど1と3だけにして2を分ける方が正解だったらしい、今回EF両方見えなくて最初の40分ぐらいで投げちゃった
まーす.icon 補集合((全体の並び順) - (どこかが13または31となる並び順))で考えていたけどサンプルすら合わない.多分,(どこかが13または31となる並び順)の項で重複があるから......?でも,どうやって定式化しようか......
まーす.icon 解説見たけど発想自体は間違ってなさそう......
N_N.icon たぶん解き方は合ってると思うけど,mod 上での階乗とか逆元とかコンビネーションを事前に求めておくライブラリを作ってなかったので,途中で諦める.考え方としては,最初に1を並べて,その後,2と3を並べる感じ.具体的には,連続する1の固まりがいくつあるかでループする.1の固まりの隣は必ず2でなければならないので,そこだけ除いて,後の残り部分を2と3で自由に埋める組み合わせを数えていく.
〇F問題
Kaplam.icon解説読んだ、この間の院の授業で見たような図が浮かんだ...( ˘ω˘)
N_N.icon 院の授業?
Kaplam.icon次に来る文字によって遷移先決めるオートマトンだったらしいので
N_N.icon そうなんだ.授業をしてるのに思い付かなかった...(てか,オートマトンDPってあるのね!)
まーす.icon こっちも補集合?
kakip.iconSkすべて含む文字列の個数を求められればよさそう (だめ) 解説見た こうゆう系を通したことない気がする
〇G問題
#AtCoder #ABC