2026年5月11日月曜日

AtCoder Regular Contest-- 219

 Cまで三完だが、Aは嘘だった。DもEも思いつきにくい部分は思いついていたのだが。

コンテスト後のツイート


A - Similarity

 文字列Xの01を反転させたものをX'とすると、S中にX'が含まれないなら、Xを答えとして良い。
 ACした提出は、Sの文字を全探索してそれを調べたが、Sの要素が全て対になっているとき、これではダメ。乱択などしなくてはいけなかった。WAが出たら気付いてACはできていたと思う。

D - Grid Game

 解法ツイートを見てAC。

 コンテスト中、(一次元での)実験により、
・(i+j)%2==1の箇所しか影響しない
 ことには気付いていた。
 また、(K+1)での余りを考えて良いことも分かっていた。

 しかし、判定条件が分からず、交代和などを考えて迷走。分からなくなってEへ行った。

 実際は、NIMと同じなのでxorを取ると良かった。
 NIMに近いのでは? と考えたことはあったはずなのに、なぜ試してみなかったのか。悔やまれる。

E - Equal Distribution

 解法ツイートを見てAC。

★「oが偶数個とxが偶数個で作られた配列があったとき、その連続部分区間でoとxをちょうど半分ずつ含むものが存在する」
 を使うことはコンテスト中に気付いていたのに、全体のハミルトン閉路を取ることを思いつかなかったという。

 外周から距離0、1、2の順に、oがちょうど半分か、一個少ないか、みたいなものを取って構成しようとしていた。

 この方法でもできなくはない気がするけど、外周ではAが右半分に、次ではAが左半分に……みたいなときに連結性が保たれない。連結性を保つような取り方はあるはずだけど、若干実装の手間が増えるし、コンテスト中はそもそも反例に気付いていなかった。

 ★が本質だと思うのに、★に気付いても違う方針へ行ってしまったのは痛い。

 一番の鍵となる部分は思いついて実装していたため反省点も見出しにくく、冷静にならないと……くらいしか言えないのも辛いところ。

2026年5月9日土曜日

yukicoder 499 contest

 Fを考えていたが分からず、Dのみ一完。


No.3537 Thank You!

 解説AC。

 どのカードを1にするか決めたら貪欲で良い……というのはコンテスト中から分かっていたが、それは簡単に求められないと思って迷走してしまった。(安い方からあるところまで貪欲に買った後、それ以降で個数が一番多いものを1にする、とすれば良いと思ったが嘘でした)

 二分探索を使えば、実装はやや難しいが普通に計算できた。これは気付かなくてはいけなかった。

2026年5月8日金曜日

Next DP Contest

 F以外の4点以下の問題は正解。後は部分点を拾った。もう少し取れないとまずい。

コンテスト後のツイート

J - 個数と総和

 この問題と同じテーマというのを見てAC。
 「繰り上がりを持つ桁 DP」と呼ばれているのは知らなかった。

 類題をACしたときは理解していたのだろうけど、DPテーブルを使い回して解くという解法を忘れていた。結構汎用性がある解法のようなので、ちゃんと身に着けておきたい。





2026年5月7日木曜日

AtCoder Beginner Contest 456(Promotion of AtCoder Career Design DAY)

 Eまで解いたが、Eは分からず、時間をかけて無理矢理嘘解法を通した。レートが1800を割ってしまった。

コンテスト後のツイート

E - Endless Holidays

 結局敗因はよく分からないけど、多分、サイクル検出すれば良い、と言われていたら解けた気がする。dfsしても良いし、SCCを使っても良いし、出次数が正の辺を消していっても良い。

 曜日の概念があったせいで、一般的な有向グラフのサイクル検出問題とは別の問題に見えていたことが敗因だった気がする。曜日1から始める……みたいなところをコードから消せると気付けていなかった。
 自分がどんな問題を考えているのか、もっと一般化した問題はないか、一般化したら問題は解けなくなくなるのか、といったあたりを意識したい。

F - Plan Holidays

 セグ木で解けると知ってAC。
 公式解説では、min-plus 代数などと難しいことを言っているけど、左右の端を使っているか、使っていないか、で4通り場合分けしてセグ木に乗せればOK。

 これも、セグ木で解けると気付かなかったことが敗因。
 多分、クエリが与えられて、[l,r]の範囲での答えを求めよ、と言われていたら解けていた気がする。
 その問題が解けるならこの問題も解ける、と気付くのが大事。



2026年5月6日水曜日

yukicoder contest 聖光学院プログラミングコンテスト2026 day2

 A一完で睡魔に襲われ撤退。


No.3527 Minimum Abs Sum

 解説AC。
 最初はCHT(slope trick)に見え、その後も、係数が一番大きいところなどと考えて失敗。

 係数が全て1のときの解法は知っていたし、
・abs(a*x+b)=a*abs(x+b/a)
 という式変形も見たことがあったはず。
 それにもかかわらず解けなかったのは反省。

No.3528 Happy XOR Candy

 自力AC。
 総xorが打ち消し合うというのはどこかで見たことあったと思う。

2026年5月2日土曜日

Codeforces Round 1095 (Div. 2)

 Cまで三完。レートがひどいことに。

コンテスト後のツイート

D. Reserved Reversals

 解説AC。

 コンテスト中、初手実験に行ったのは良かったと思う。
 そこで、min(A)とmax(A)の偶奇が違う場合は、必ずYESになる……などということは分かった。
しかし、そこから良い性質が見つけられなかった。

 ここで、「min(A)とmax(A)の偶奇が違う場合は、必ずYESになる」のはなぜか? などと考えれば良かったのかもしれない。
 たとえば、「4 3 1」のとき、1と3を入れ替えられるのはなぜか? と考えるべきだった。
 それは、4が使えるからである。
 そこから、3より大きい偶数、もしくは1より小さい偶数があれば入れ替えられそう……と気付く……という流れはそんなに不自然に思えない。

 だが実際はそういう風に思考できていないわけで。
 実験すると、一直線に答えが求まるのでは? と考えて思考することが疎かになりがちなのが問題。実験して得た結果について考察することに失敗していることが多い。




yukicoder contest 498 リアクティブコンテスト

 C一問完。DやEを考えていたが分からなかった。リアクティブ(インタラクティブ)形式の使い方が斬新な問題が多くて良かった。


No.3519 A/B問題

 自力AC。

 結果的には公式解説と同じ方法でやっていたが、これが筆算と同じだと気付いていなかった。解説を読んでびっくり。

No.3521 接線の傾き

 自力AC。
 コンテスト中、結構考えて思いつかなかったのに、今見たらすぐに気付いた。平均値の定理は知っていたのにねぇ。

No.3522 冪乗乗

 公式解説が賢い。こういう式変形をぱっとできたら嬉しいね。
 ただ、tester解は思いつける内容だったので、できなかったことを反省。