ABC381 (2024/11/22)
https://atcoder.jp/contests/abc381/tasks
ABC 380 からルールの変更がありました.
新ルールについて(詳しくは https://atcoder.jp/posts/1347 を参照)
・生成AIにコードを生成させる場合、コーディング速度の上昇のみを目的とした補完のみが許可されます。問題やその部分問題を解かせたり、アイデアを得たりする用途に使用してはいけません。
・各言語への翻訳や、他プログラミング言語への翻訳などは、ルール中で指定されたフォーマットでのみ許可されます。
〇A問題
Kaplam.icon今日の日付でフォルダ作る時に「ぞろ目じゃん、ぞろ目の問題出るのかな」って考えてたけどそれにしたってなんだよこれ
まーす.iconfor文まわして問題文通りにするやつ.not S[i] == "1" and S[- i - 1] == "2じゃDe・Morganしても$ S[i] \neq 1 \lor S[N-i-1] \neq 2 にならないじゃんとコンテスト後に気づく......
まーす.icon間に合ったけど,WA出しすぎ......
tako.icon 文字数が偶数の時にはじくのを忘れた
kakip.icon正規表現1*/2*でちょっと楽する
CarpDay.icon真ん中の位置mid求めて,前半が'1' * mid,真ん中が'/',後半が'2' * midならYes
〇B問題
Kaplam.icon普通に比較、D問題でもこのコード使った
tako.icon 条件通り
まーす.icon3つの条件を一個ずつつぶす感じ.
kakip.iconやるだけ
CarpDay.iconstep=2のforで2個ずつ比較.2つが同じでない or 過去に使った文字ならNo
〇C問題
Kaplam.icon1が出たらmode = 1にして、mode = 1の時/が出たらmode = 2にしてmin(1の数,2の数)求めて...みたいな
tako.icon 多分上と同じ。mode=2で1が出た時に1の数を0にしてた。
まーす.icon尺取りの進化系みたいなやつ
kakip.iconre.findall(r'1*/2*', S)すればあとはスラッシュの位置から計算できる
CarpDay.icon多分上からお二人と同じ.初めは1を見つけたら条件に合う文字を探すような方法をwhileで組んでいたけど,案の定RE.修正したけどWAが取れない.やっぱりforで作り直して(1WA挟んで)やっとAC.while嫌い.同じくWA出しすぎ...
CarpDay.icon終了後,whileのWA原因調査.不要にi+=1していた.while苦手.kakip.iconさんの正規表現,すごいな.
〇D問題
Kaplam.icon今連なってる1122列をdequeとsetで管理して、被ったら被った数字までpopleftしてって感じ...で最初のは23分で出せたんだけどWA出てデバッグしてもWA消えないからB問題を愚直解としてスライスとランダムケースを自作ツールに突っ込んでAC出しました、自作ツールが役に立つのはいいんだけどサンプルケース弱くして難易度上げるのやめてください!!!
Kaplam.icon因みに私はこれで落ちてた、最初適当なランダムケース作ったらn = 100とかでも400AC0WAとか出たからある程度整ったデータに、テストケースの作り方も大事ね
20
2 2 4 4 3 3 2 2 1 1 1 1 4 4 2 2 2 2 4 4
Kaplam.iconサンプルだけじゃなくてテストケースも弱かったらしくてaftercontestが20ケース追加されてた(うちのはちゃんとAC出て安心)
kakip.icon隣合う数字が同じ部分を抜き出して尺取り。デバッグでicecreamを使ってみたけど、インポートに0.5秒くらいかかること以外は結構優秀。通常の出力と色違うし、変数名も表示してくれてわかりやすい
CarpDay.icon3ステップ.(1)各数値が何回連続するか (数値,回数)を要素とするリストを作成,(2)回数が1回の数値は使われない.回数が3回以上の数値は2個しか使われず,列の先頭か末尾にしかならない.このことから,1122数列になりうる数列(リスト)の候補(リスト)を作成.(3)各数列に対してKaplam.iconさんと同じようにdequeとsetで1122数列に追加した数値を管理.新しく追加する数値が既存なら,既存数値を除去するまで古い順にdeque(とset)から削除.生成AIのコード補完に任せていた部分でインデントミスがあってRE.popleftをpop(これも補完が提案した内容を丸のみした結果)にしてWA(気付くのに12分かかった).補完は便利だけど,しっかり自分で確認しなければ...
CarpDay.iconほぼユーザ解説と同じでした.上の(1)は「ランレングス圧縮」ですね.more-itertools使えば簡単に獲得できましたね.kakip.iconさんが使いこなしているmore-itertools,そろそろ使えるようにするか..
〇E問題
kakip.icon三分探索したけど見当違い
Kaplam.iconテストケースの不備でO(10^10)解が通っちゃったらしい(aftercontestのは落ちるらしい)
CarpDay.icon三分探索だと信じて,終了後も頑張って実装して投稿するもTLE.見当違いなのか...
〇F問題
Kaplam.icon制約的にbitDP 使うのは読めたんだけどどう実装すればいいのかわからず記念提出だけ
〇G問題
#AtCoder #ABC