はじめに
こんにちは!へんです。
競技プログラミングをしています。 AtCoder は 緑 です。
JOI 2025/2026 でやったことを書き連ねます。
一次予選
流石に簡単です。
5分ぐらいで解いて、あとは遊んでました。
二次予選
緑コーダーにとっての勝負はここです。
二次予選を通過できるかどうかで、優秀賞か敢闘賞かが決まります。
私はD問題を何とかACすることができ、二次予選通過が決定しました!わーい
セミファイナルステージ (本選)
人生初のオンサイトコンテストです。ワクワクしてました。
セミファイナル前の精進
なんと、全くと言っていいほど何もしていません!(模試を、許しません)
一回も本番と同じ形式で解いていません。
一応、東京までの特急内で典型90問を大量に解いていました。
コンテスト前
同校もいないし、知ってる人に話かけようと思っても誰が誰だかわからないしで、孤独の時間を過ごしました。
友達は、作ろう
コンテスト中
A
めっちゃ簡単そうです!これは数分で解かなければ... と焦りながら実装しますが、全く答えが合いません。とても慌てます。とりあえずB問題に行きます。
B
なんか難しそう! imos法 + 区間maxのセグ木で行けると思い実装しましたが、これまた答えが合いません。どうも、誤読していたようです。更に慌てます。自認が不正erになりながら、A問題に戻ります。
A (2回目)
よく見ると、(0-indexedで) 偶数番目を選び、それより右の奇数番目を選ぶ必要があります。累積maxはなんかバグらせる予感がしたので、区間maxのセグ木で実装し、AC。 (42:15)
遅すぎますね
B (2回目)
区間が $ Q $ 回与えられるので、その中にある区間の重みの和を求めればいいんですね。数十分考えた末、余事象を考えるとよさそうなことに気づきます。
二つの区間が被っていないとき、片方の区間の右端が、もう片方の区間の左端よりも左にあるか、その逆かです。
どちらも、条件を満たす $ C_i $ の和は、二分探索と累積和で実装できますね。それを実装してAC。(1:38:40)
C
まず、気温が24度以上だと No を出力すればいいことがわかります。
以下、Yes の場合のみ考えます。
小課題2 を見ますが、実装が面倒そうですが、やるだけっぽいです。
小課題3 を考えます。$ 1, 2, 4, 8, 16, 32$ があれば制約の範囲であり得る $ B_i $ の値を作ることができることに気づきます。そんな感じに小課題1~3 をACします。(35点, 2:27:46)
40分程度 小課題4 を考えますがわかりません。Dへ行きます。 (全探索は気づかない~~)
D
何もわかりません。小課題1 すらわかりません。
数十分くねくねしていると、小課題3, 4 がやるだけであることに気づきます。それを実装します。(18点, 3:33:02)
以降は点数を得ることができませんでした。253点で終了。
コンテスト後
直後は 何もできなかった、まあ次頑張ろう、という気持ちでいました。ボーダーは400点ぐらいかな、来年までに点差埋められるかな、とか色々考えている間に暫定ボーダーが発表されました。あれ、意外と低い...??
71点しか離れてなくて、びっくり
反省
・焦りは禁物
コンテストは4時間もあるのだから、少し出遅れたぐらいは無視できます。それよりも冷静に問題に取り組むのが重要です。筆者は焦りに焦りまくり、A問題に42分かける大失態をしました。
・最後まで取り組む
流石に緑コーダーはセミファイナルを通過できません!と思っていたため、途中で何もしない時間が結構ありました。実際、通過した緑コーダーはいない(と思われる)ですが、知識的には十分通過が可能でした。
来年参加される方は、どんなに通過する可能性が低くとも、最後まで諦めず競技に取り組んでほしいです。
・積極的に話しかける
残念、待っていても誰も話しかけてはくれません。本当に積極的に話しかけることをお勧めします。筆者は誰にも話しかけなかった結果、会場内で一言も発しないという快挙を達成しました。
おわり
とっっっっても楽しかったです!少しでも話してくれた方々や、情報オリンピックを運営してくださった方々に、深く感謝いたします!
来年はファイナルに進出できるように 1000問 以上精進します!!
