目錄
序Ⅰ
序Ⅱ
前言
符號表
主要信息學競賽及相關活動列表
入門級
1.1 基礎知識與編程環境
1.1.1 電腦的基本構成
1.1.2 Windows、Linux等操作系統的基本概念及其常見操作
1.1.3 電腦網路和Internet的基本概念
1.1.4 電腦的歷史和常見用途
1.1.5 NOI以及相關活動的歷史
1.1.6 NOI以及相關活動的規則
1.1.7 位、位元組與字
1.1.8 程序設計語言以及程序編譯和運行的基本概念
1.1.9 使用圖形界面新建、複製、刪除、移動文件或目錄
1.1.10 使用Windows系統下的集成開發環境
1.1.11 使用Linux系統下的集成開發環境
1.1.12 g++、gcc等常見編譯器的基本使用
1.2 C++程序設計
1.2.1 程序基本概念
1.2.2 基本數據類型
1.2.3 程序基本語句
1.2.4 基本運算
1.2.5 數學庫常用函數
1.2.6 結構化程序設計
1.2.7 數組
1.2.8 字元串的處理
1.2.9 函數與遞歸
1.2.10 結構體與聯合體
1.2.11 指針類型
1.2.12 文件及基本讀寫
1.2.13 STL模板
1.3 數據結構
1.3.1 線性結構
1.3.2 簡單樹
1.3.3 特殊樹
1.3.4 簡單圖
1.4 演算法
1.4.1 演算法概念與描述
1.4.2 入門演算法
1.4.3 基礎演算法
1.4.4 數值處理演算法
1.4.5 排序演算法
1.4.6 搜索演算法
1.4.7 圖論演算法
1.4.8 動態規劃
1.5 數學與其他
1.5.1 數及其運算
1.5.2 初等數論
1.5.3 離散與組合數學
1.5.4 其他
提高級
2.1 基礎知識與編程環境
2.1.1 Linux系統終端中常用的文件與目錄操作命令
2.1.2 Linux系統下常見文本編輯工具的使用
2.1.3 g++、gcc等編譯器與相關編譯選項
2.1.4 在Linux系統終端中運行程序,使用time命令查看程序用時
2.1.5 調試工具GDB的使用
2.2 C++程序設計
2.2.1 類
2.2.2 STL模板
2.3 數據結構
2.3.1 線性結構
2.3.2 集合與森林
2.3.3 特殊樹
2.3.4 常見圖
2.3.5 哈希表
2.4 演算法
2.4.1 複雜度分析
2.4.2 演算法策略(離散化)
2.4.3 基礎演算法(分治演算法)
2.4.4 排序演算法
2.4.5 字元串相關演算法(字元串匹配:KMP演算法)
2.4.6 搜索演算法
2.4.7 圖論演算法
2.4.8 動態規劃
2.5 數學與其他
2.5.1 初等數學
2.5.2 初等數論
2.5.3 離散與組合數學
2.5.4 線性代數
NOI級
3.1 C++程序設計(面向對象的程序設計思想)
3.2 數據結構
3.2.1 線性結構(塊狀鏈表)
3.2.2 序列(跳躍表)
3.2.3 複雜樹
3.2.4 可合併堆
3.2.5 可持久化數據結構
3.3 演算法
3.3.1 演算法策略
3.3.2 字元串演算法
3.3.3 圖論演算法
3.3.4 動態規劃
3.4 數學與其他
3.4.1 初等數論
3.4.2 離散與組合數學
3.4.3 線性代數
3.4.4 高等數學
3.4.5 概率論
3.4.6 博弈論
3.4.7 最優化(單純形法)
3.4.8 計算幾何
3.4.9 資訊理論(熵、互信息、條件熵、相對熵)
3.4.10 其他