AIで解説 AtCoder攻略 整数・数論

読了 約6分 たびすけ
AIで解説 AtCoder攻略 整数・数論

整数・数論ページの位置づけ

項目内容
必修度重要
学習目安標準
前提整数演算・math
対象問題108問(推定値あり107問、未算出1問)

この記事のdifficulty区分は、問題を解く順番を決めるための目安です。AtCoderの公式なA〜F区分ではなく、取得できたdifficulty推定値を次の範囲に分けています。

学習目安difficulty推定値問題数
入門difficulty < 034
標準0〜79924
標準〜発展800〜119916
発展1200以上33
未算出1

倍数の重複を包除原理で整理し、GCD・LCMや約数の偶奇を使って数えます。

問題ごとの細かな実装は異なりますが、最初に確認する条件は共通しています。

整数・数論の見分け方

  • 倍数を数える条件がある
  • 同じ対象を複数条件で数えている
  • 約数や偶奇が答えを決める

整数・数論の実装前チェック

  • 端点を含む個数をF(B)-F(A-1)で確認する
  • GCDからLCMを安全に作る
  • 約数の走査順と既決定の値を整理する

先に確認する文法・ライブラリ

まずは必須Python文法で、入力・配列・条件分岐・ループなどの基本を確認してください。問題に合わせたキュー、ヒープ、二分探索などの選び方は標準ライブラリ・定石にまとめています。

代表問題で実装を確認する

最初の一問として、ABC220 A Find Multiple公式解説)を解きます。区間内でCの倍数が最初に現れる位置を、切り上げ除算で直接求めます。順番に試す必要はありません。

A, B, C = map(int, input().split())
first = (A + C - 1) // C * C
print(first if first <= B else -1)

切り上げ除算だけなのでO(1)時間・O(1)メモリです。

整数・数論の学ぶ順番

このページでは全件を一度に並べず、difficultyの推定値を目安に代表問題を段階分けしています。難易度が未算出の問題は、制約と出題意図を先に確認します。

まず解く

問題公式解説出題意図difficulty
ABC254 A Last Two Digits公式解説整数を100で割った余りとして下2桁を取り出し、必要ならゼロ埋めして出力する。-1194
ABC256 A 2^N公式解説2のN乗を計算する。-1191
ABC187 A Large Digits公式解説Compute the decimal digit sum of each input and output the larger one.-1172
ABC235 A Rotate公式解説3桁の数字を3通りに回転して整数化し、その和を求める。-1104
ABC340 A Arithmetic Progression公式解説Official editorial intent is classified as arithmetic progression output.-1100

次に解く

問題公式解説出題意図difficulty
ABC365 A Leap Year公式解説Official editorial intent is classified as leap year.-1071
ABC379 A Cyclic公式解説3桁を一文字ずつ巡回シフトして出力する。-1053
ABC363 A Piling Up公式解説Official editorial intent is classified as next hundred.-1042
ABC411 A Required Length公式解説公式Editorialの方針を required length arithmetic として整理する。-1028
ABC347 A Divisible公式解説Official editorial intent is classified as divisible filter.-1026

挑戦問題

問題公式解説出題意図difficulty
ABC220 A Find Multiple公式解説A以上の最小のCの倍数を切り上げで求め、B以下なら出力する。-933
ABC226 A Round decimals公式解説小数値を四捨五入し、整数として出力する。-930
ABC216 A Signed Difficulty公式解説小数点以下の1桁を読み、0〜2・3〜6・7〜9の範囲で評価記号を付ける。-860
ABC387 B 9×9 Sum公式解説9×9表の指定部分の積和を二重ループで求める。-785
ABC354 A Exponential Plant公式解説Official editorial intent is classified as ceil log2.-770

問題文を読んだら、まず「見分け方」のどれに当たるかを一行で記録します。当てはまらない問題は、別のページへ移す判断自体を復習材料にします。

整数・数論の次に読むページ

順列と組合せの数え上げXORとビットごとの数え上げ累積和で区間と差を数える