C++程序设计 |
C++语法 |
略 |
无 |
数据结构 |
线性结构 |
【 3 】链表:单链表、双向链表、循环链表 |
CSPJ2021D 小熊的果篮 |
【 3 】栈 |
NOIPJ2003C 栈 NOIPJ2013B 表达式求值 |
【 3 】队列 |
NOIPS2004B 合并果子 NOIPS2010A 机器翻译 |
简单树 |
【 3 】树的定义与相关概念 【 4 】树的表示与存储 【 3 】二叉树的定义与基本性质 【 4 】二叉树的表示与存储 |
无 |
【 4 】二叉树的遍历:前序、中序、后序 |
NOIPJ2001C 求先序排列 NOIPJ2004C. FBI树 NOIPS2003 加分二叉树 NOIPJ2018D 对称二叉树 CSPJ2020C 表达式 |
特殊树 |
【 4 】完全二叉树的定义与基本性质 |
NOIPJ2004C. FBI树 |
【 4 】完全二叉树的数组表示法 |
无 |
【 4 】哈夫曼树的定义和构造、哈夫曼编码 |
NOI2015 荷马史诗 |
【 4 】二叉搜索树的定义和构造 |
无 |
简单图 |
【 3 】图的定义与相关概念 【 4 】图的表示与存储:邻接矩阵 【 4 】图的表示与存储:邻接表 |
算法 |
算法概念与描述 |
【 1 】算法概念 【 2 】算法描述:自然语言描述、流程图描述、伪代码描述 |
入门算法 |
【 1 】枚举法 |
NOIPS2008 火柴棒等式 NOIPS2010 数字统计 |
【 1 】模拟法 |
NOIPJ2003 乒乓球 NOIPJ2009 多项式输出 NOIPJ2010B 接水问题 NOIPS2011A 铺地毯 NOIPJ2012B 寻宝 NOIPS2012A Vigenère密码 NOIPS2014A 生活大爆炸版石头剪刀布 NOIPS2015A 神奇的幻方 NOIPJ2016C. 海港 NOIPS2016A 玩具谜题 NOIPS2017B 时间复杂度 NOIPJ2018B 龙虎斗 CSPJ2019B 公交换乘 CSPJ2021C 网络连接 |
基础算法 |
【 3 】贪心法 |
NOIPS2004B 合并果子(merge) NOIPJ2007B. 纪念品分组 NOIPJ2010D 三国游戏 NOIPJ2015D. 推销员 NOIPS2011 观光公交 NOIPS2012B 国王游戏 NOIPS2013D 积木大赛 NOI2014A 起床困难综合症 USACO2006Feb Stall Reservations S USACO2007Nov Sunscreen |
【 3 】递推法 |
NOIPJ2001A 数的计算 NOIPS2001B 数的划分 NOIPJ2003C. 栈 |
【 4 】递归法 |
NOIPS2001B 数的划分 NOIPJ2001C. 求先序排列 NOIPJ2007D. Hanoi双塔问题 |
【 4 】二分法 |
NOIPS2001A. 一元三次方程求解 NOIPS2011 聪明的质监员(Day 2) NOIPS2012E 借教室 NOIPS2015D 跳石头 USACO17JAN Cow Dance Show S |
【 4 】倍增法 |
NOIPS2013A 转圈游戏 NOIPS2012C 开车旅行 |
数值处理算法 |
【 4 】高精度的乘法 |
NOIPJ1998 阶乘之和 NOIPS2000B 乘积最大 NOIPS2012B 国王游戏 |
【 4 】高精度整数除以单精度整数的商和余数 |
无 |
排序算法 |
【 3 】排序的基本概念 |
NOIPJ2009B. 分数线划定 |
【 3 】冒泡排序 【 3 】选择排序 【 3 】插入排序 【 3 】计数排序 |
无 |
搜索算法 |
【 5 】深度优先搜索 |
NOIPS2000 单词接龙 USACO Tranining Checker Challenge(八皇后) USACO2005Dec Scales |
【 5 】广度优先搜索 |
NOIPS2002B 字串变换 NOIPJ2017C 棋盘 CSPJ2019D 零件加工 (Parts Processing) USACO2009Oct Invasion of the Milkweed G |
图论算法 |
【 4 】深度优先遍历 |
无 |
【 4 】广度优先遍历 |
【 5 】泛洪算法(flood fill) |
动态规划 |
【 4 】简单一维动态规划 |
IOI1994 Number Triangles IOI1999 花店橱窗布置 NOIPS1996 挖地雷 NOIPJ1999 拦截导弹 NOIPS2000 方格取数 NOIPS2004C 合唱队形 NOIPS2008 传纸条 NOIPS2010 乌龟棋 NOIPJ2012C 摆花 NOIPS2013E 花匠 NOIPS2015E 子串 CSPJ2020D 方格取数 CSPJ2022D 上升点列 |
【 5 】简单背包类型动态规划 |
NOIPJ2001D 装箱问题 NOIPJ2005C 采药 NOIPJ2006B 开心的金明 NOIPS2006B 金明的预算方案 NOIPS2014C 飞扬的小鸟 NOIPS2018B 货币系统 CSPJ2019C 纪念品 (Souvenir) |
【 5 】简单区间类型动态规划 |
NOI995 石子合并 IOI1998 Polygon NOI1999 棋盘分割 NOIPS2006A 能量项链 NOIPS2007C 矩阵取数游戏 CSPS2021B 括号序列 USACO2005Jan Naptime USACO2016Open 248 G |
数学与其他 |
数及其运算 |
【 1 】自然数、整数、有理数、实数及其算术运算(加、减、乘、除) |
无 |
【 1 】进制与进制转换:二进制、八进制、十进制、十六进制 |
初中数学部分 |
略 |
初等数论 |
【 3 】整除、因数、倍数、指数、质(素) 数、合数 |
NOIPJ2012A 质因数分解 |
【 3 】取整 |
无 |
【 3 】模运算与同余 |
【 3 】整数唯一分解定理 |
NOIPJ2012A 质因数分解 NOIPS2009B Hankson的趣味题 |
【 3 】辗转相除法(欧几里得算法) |
NOIPJ2001B 最大公约数和最小公倍数问题 NOIPS2009B Hankson的趣味题 |
【 4 】素数筛法:埃氏筛法与线性筛法 |
NOIPS2008A 笨小猴 NOIPJ2009C 细胞分裂 NOIP2021A 报数 |
离散与组合数学 |
【 2 】集合 |
无 |
【 2 】加法原理 |
【 2 】乘法原理 |
【 4 】排列 |
【 4 】组合 |
NOIPS2006D 2^k进制数 |
【 4 】杨辉三角 |
NOIPS2016D 组合数问题 |
其他 |
【 2 】ASCII 码 |
无 |
【 2 】格雷码 |
CSPS2019A 格雷码 (Gray Code) |