ABC459 (2026/05/23)
〇A問題
Kaplam.icon(:a) + (a+1:)
まーす.icon 同じくスライスで.
N_N.icon 今日も書く気がしない.Java だと S.substring(0, X - 1) + S.substring(X)
〇B問題
Kaplam.icon 3,3 ... 3,3,4 だと思って実装したら落ちて、全然気付かなくて意味わかんね~!! って、元ネタなにこれ
Kaplam.iconスマホのアルファベットフリック入力の並びがこうなのね、スマホでアルファベットあんまり打たないし...
まーす.icon 愚直にif a in {"a", "b", "c"}:のような記法で列挙.めんどくさい
N_N.icon if 文の羅列だけど,先頭が o の場合までは,3で mod を取った.s の場合の数え間違いで,WA食らう.
〇C問題
Kaplam.icon BITで何個以下積んである場所が何個あるか求めて、全マス1個減らした場合は、次減らすボーダーを1個上げる、みたいな、Q<y の時にBITが配列外参照起こしてRE
まーす.icon 2つのセグ木を用意する.1つはボーダーを表すもの.もう1つは,$ n個積んであるマスが何マスかを記録するもの.これ以外思いつかない.
N_N.icon 問題文を読み間違い.「$ y 個以上のブロックが積まれているマスの個数」を「$ y個以上積まれているブロックの総和」と勘違い.遅延セグ木を使わないと解けない問題になってしまってた.間違いに気付いて修正するも,なぜかWAが取れず.
Kaplam.iconコード見ました、min = 0,ceil(0) = N となっていて、初回のクエリ1でif ceil(min = 0) == N: min++ が走りますが、クエリ1が呼ばれる前にクエリ(2 y=1)が呼ばれると、ceil(min=0 + 1 - 1)でNが出力されますね、min = 1でACを確認しました
N_N.icon お返事していませんでした.コードをチェックしてくれてありがとう!助かります!!先週の話だけど,自分でもチェックしてみます.
〇D問題
Kaplam.iconiwaiって岩井星人さんの入水祝いかしら、多く残っている文字で、かつ前回使った文字と違う文字を足していく まーす.icon たぶん.......さすが,直大さんのものまねしているだけある笑
Kaplam.iconhttps://youtu.be/zp5IG4zA-P0?si=Zd4yXyG-j_QDA1DI&t=2260
まーす.icon heapqなどを使い,$ Sのなかでたくさん使われている文字から使用.
N_N.icon 判定だけなら簡単.
〇E問題
Kaplam.iconそれぞれのマスについて、ncr(選べる個数,選びたい個数) * 子での通り数 を求めればいい
まーす.icon 方法は思いついた.BFSを用いて葉から順に組み合わせの計算する.ただ,前処理の計算方法が分からん.
まーす.icon コンテスト中に別の方法で試していたんだが,なかなかサンプルが合わなかった.そこで,上の伏字を書いたのだけど,二項係数のループが1ずれていたことが判明.......このことに気が付いていたら,70分くらいにAC出てた.おしい.
まーす.icon 「70分でAC出てた」は誇張していました.けど,コンテスト中には解けてたハズ......
Kaplam.icon mod 998244353下でのncrは
code:ncr.py
def ncr(n, r, mod = 998244353) -> int:
ret = 1
for i in range(1, r+1):
ret = (ret * (n-i+1) * pow(i, mod-2, mod)) % mod
return ret
でO(r logn)で求められます (前計算でもいいけど)
まーす.icon 私の提出したコードと多分同じことをしています.$ \frac{1}{n}を並べたlistを最初に作っておくかどうかの違い.
〇F問題
Kaplam.icon FもGも解説読んで、なんて? ってなった、崖だったせいで高順位になったけど、それならペナ出さずにもっと高順位目指したかったかも...
Kaplam.iconPerf 1893出てる...ratedした時で最高記録じゃん (unrated入れたら24年12月に黄出てる)
まーす.icon おめでとう!
〇G問題