赤への練習:解説を閉じて再構成する

2800は学習項目の修了証ではなく、競技での継続的な成績です。典型の暗記から、発見・証明・実装を一人でつなぐ練習へ移ります。

言語:Python / 計算量:課題ごとに評価

前提:未知問に向かう:不変量と反例 / 高速解と愚直解をぶつける / DP高速化は条件を証明してから

考え方

  1. 未見のARC・AGC過去問に時間を決めて挑みます。
  2. 詰まった場所を「観察・定式化・証明・実装」に分解します。
  3. 解説を読んだ翌日、白紙から証明とコードを再構成します。

具体例

解説が「総和を固定して交換する」なら、交換して目的値が悪化しない理由を自分で書く。コードを再現できるだけでは理解を確認できません。

実装

# 練習後の記録例(プログラムとしても実行できます)
review = {
    "観察": "小さい例を列挙した",
    "不足": "交換後も制約を満たす証明",
    "次回": "翌日に白紙から証明を書く"
}
print(review["次回"])

注意する条件

誰でも必ず赤になれる期限や方法はありません。停滞時は問題を小さくし、前提知識へ戻ります。睡眠を削るノルマは設けません。

確認問題

解説を閉じた翌日に優先するのは? 再構成/丸写し

解答と理由

再構成

必要な観察・証明・実装を自力で再現し、抜けた部分を特定します。

実装課題

任意の非負整数 a,b を (a-1,b+1) に変える。ただし a≥1。総和を保つ操作の確認として、入力 A B からこの操作後を出す。A≥1、B≥0、各≤10^9。次に総和が保たれる式を書こう。

入力:
5 2
出力:
4 3
参考実装
a,b=map(int,input().split())
print(a-1,b+1)
# (a-1)+(b+1)=a+b。これは必要条件の確認であり、
# より複雑な問題の十分条件までは示さない。

読了の記録・下書き・メモへ

関連する公式資料・課題