未経験から JOI 本選進出まで!
プログラミングとは何かから説明
高難易度の問題を解くためのアルゴリズム (問題解決の手法) も解説
一冊で未経験から JOI 本選進出レベルまでを幅広く対策可能
人気の Python を採用!
高等学校「情報Ⅰ」で使用されていることも多い Python の文法をゼロから解説
後半のアルゴリズムのサンプルソースもすべて Python
つまり,情報Ⅰの授業の延長線上で挑戦可能
豊富なサンプルソースを掲載!
構文だけ勉強してもプログラムはなかなか書けるようにならない
だから,英文のイディオムに相当するプログラミングの「表現」を数多く掲載
それを真似していくことで自力でプログラムが書けるように
オンラインジャッジに完全対応!
全 121 問の例題・類題がオンラインジャッジに対応
インターネット上でソースコードを提出すると,数秒で自動採点
過去問を解いて自分の理解度を確かめながら学習可能
難解なアルゴリズムを丁寧に図解!
ほぼすべてのアルゴリズムで解説に図解を活用
アルゴリズムの原理がわかる
アルゴリズムを自分で設計できる
情報オリンピックの傾向を反映!
筆者は日本代表も務めた元トップ選手
JOI の近年の出題傾向を押さえて差がつく分野を集中対策
競技への取り組み方などの経験談も掲載
正確さもわかりやすさも妥協しない!
国際情報オリンピックのメダリストなど総勢 9 名が内容を検証
それに加えて本書を実際に使った高校生からの指摘も反映
安心して手に取れる一冊
目次
第 1 章 一次予選攻略 Python 入門編
- Hello, world!
- 基本のプログラム
- 条件分岐で場合分け
- 文字列
- for ループで同じ処理を繰り返す
- リストで複数個の変数を管理
第 2 章 一次予選攻略 過去問研究編
- 一次予選にバーチャル参加してみよう
第 3 章 二次予選攻略 Python 発展編
- while ループで複雑な繰り返し条件を扱う
- 多重ループ
- 多次元リスト
- 組み込み関数:よく使う表現をスッキリ書く
- ソート関数で並び替え
- 関数の定義:関数を自作してみよう
- 再帰関数
- 抽象データ型:データと操作をまとめる
- ビット演算:「有る」と「無い」の世界
- その他の Python の機能など
第 4 章 二次予選攻略 アルゴリズム編
- アルゴリズムとは
- ソート:目標は同じでも方法はそれぞれ
- 全探索:候補はこれだけで十分
- 累積和:前計算を活用して和を一瞬で求める
- 二分探索Ⅰ:ソート済みリストから要素を探す
- 二分探索Ⅱ:判定問題に変換して答えを二分探索
- 貪欲法:最高の今を生きる,最高の未来のために
- 動的計画法Ⅰ:前の方からコツコツと
- 動的計画法Ⅱ:時系列 + α の状態を持つ
- 動的計画法Ⅲ:様々なパターンにチャレンジ
第 5 章 二次予選攻略 グラフ編
- グラフとは
- 深さ優先探索:再帰関数で猪突猛進
- 幅優先探索:キューでじわじわ
- ダイクストラ法:最短距離はこれで一発
- Union-Find:初めてのクラス作成
第 6 章 二次予選攻略 過去問研究編
- 二次予選攻略! 重要問題リスト
- フェーン現象
- 飴 2
- 美術展
- ペンキの色