数学类问题
1. 精度处理(高精度、实数处理、各种浮点类型处理方法)
2. 组合数学问题(斐波那契数列、第二类数、卡特兰数、Polya原理、排列组合计数、加法原理与乘法原理)
3. 进制问题(特定二进制串的统计、二分查找、利用二进制进行路径、状态描述、二进制转换)
4. 递推与递归关系(递推关系式、通项公式、数列、博弈问题)
5. 数位、数字、特定数值的查找、统计(数值处理、质因子分解、幂次分解、数值表达式、添加运算符、分式与实数运算)
6. 数学杂题(回文数字、矩阵处理、约瑟夫与反约瑟夫问题)
7. 数学剪枝(无解判定、解线性方程组、限定搜索范围)
常用策略
1. 相关公式、定理、原理的应用
2. 寻找规律、归纳整理递归与递推关系式
3. 按照数学方法构造、二进制转化等技巧性处理
4. 注意事项:
A. 规律准确(小数据手工推算、搜索程序验证)
B. 数据类型是否合理、数据范围是否超界(大数据处理)
1. 精度处理(高精度、实数处理、各种浮点类型处理方法)
2. 组合数学问题(斐波那契数列、第二类数、卡特兰数、Polya原理、排列组合计数、加法原理与乘法原理)
3. 进制问题(特定二进制串的统计、二分查找、利用二进制进行路径、状态描述、二进制转换)
4. 递推与递归关系(递推关系式、通项公式、数列、博弈问题)
5. 数位、数字、特定数值的查找、统计(数值处理、质因子分解、幂次分解、数值表达式、添加运算符、分式与实数运算)
6. 数学杂题(回文数字、矩阵处理、约瑟夫与反约瑟夫问题)
7. 数学剪枝(无解判定、解线性方程组、限定搜索范围)
常用策略
1. 相关公式、定理、原理的应用
2. 寻找规律、归纳整理递归与递推关系式
3. 按照数学方法构造、二进制转化等技巧性处理
4. 注意事项:
A. 规律准确(小数据手工推算、搜索程序验证)
B. 数据类型是否合理、数据范围是否超界(大数据处理)
字符、字串类问题
1. 读入、分离和统计问题(文件结束符、行结束符、空格符、回车符、字符组合分离、统计)
2. 插入、删除、修改、替换等相关编辑问题(字符距离、优美编辑、初始状态与目标状态的变换、迭代等处理性问题)
3. KMP算法及其改正
4. 回文串、高精度运算及其以字符(串)作为处理对象的相关问题
常用策略
1. 一般性字符处理
2. 动态规划方法
3. 字符树(查找、树的前序、中序、后序遍历)
4. 注意事项:
A. 读入时小心
B. 字符串类型与字符数组存贮及其压缩存取
1. 读入、分离和统计问题(文件结束符、行结束符、空格符、回车符、字符组合分离、统计)
2. 插入、删除、修改、替换等相关编辑问题(字符距离、优美编辑、初始状态与目标状态的变换、迭代等处理性问题)
3. KMP算法及其改正
4. 回文串、高精度运算及其以字符(串)作为处理对象的相关问题
常用策略
1. 一般性字符处理
2. 动态规划方法
3. 字符树(查找、树的前序、中序、后序遍历)
4. 注意事项:
A. 读入时小心
B. 字符串类型与字符数组存贮及其压缩存取
统计类问题
1. 方案总数统计(矩阵、三角形划分方案统计、问题解集个数统计)
2. 特定、离散元素统计(二进制统计问题)
3. 横向、纵向规模化问题(数据范围、数据维数巨大)
4. 离散化问题(卫星覆盖、图形周长)
5. 一般性统计问题(时间复杂度)
常用策略
1. 扫描技术、归类统计及平面、空间坐标体系变换等几何学知识
2. 离散化思想
3. 线段树处理方法
4. 降维、剪枝
5. 借助于数学方法进行统计
6. 注意事项:
A. 统计计数:避免待统计元素的遗漏、重复
B. 多次读文件、边读边处理等大数据文件的处理技巧
1. 方案总数统计(矩阵、三角形划分方案统计、问题解集个数统计)
2. 特定、离散元素统计(二进制统计问题)
3. 横向、纵向规模化问题(数据范围、数据维数巨大)
4. 离散化问题(卫星覆盖、图形周长)
5. 一般性统计问题(时间复杂度)
常用策略
1. 扫描技术、归类统计及平面、空间坐标体系变换等几何学知识
2. 离散化思想
3. 线段树处理方法
4. 降维、剪枝
5. 借助于数学方法进行统计
6. 注意事项:
A. 统计计数:避免待统计元素的遗漏、重复
B. 多次读文件、边读边处理等大数据文件的处理技巧
模拟类问题
1. 按题设描述进行直接模拟
2. 队列模型模拟
3. 按时间顺序模拟状态
常用策略
1. 按条件描述直接模拟
2. 注意事件发生的起止时间、状态的变化
3. 按某一指标(时间)排序进行预处理
4. 注意事项:
A. 准确理解题意,切忌加入个人想当然思想,严格按题意进行模拟
B. 一般来说要考虑的因素较多,做题前要有绝对清晰的思路并逐步修正要考虑的各种因素
搜索类问题
1. 枚举类问题(有较好枚举方法或枚举量不大的问题)
2. 产生式系统(产生式规则,生成新的元素类问题)
3. 无任何好的解决办法或其他方法不能完成的问题
4. 搜索与其他方法的结合(与动态规划的结合、与贪心思想的结合等)
常用策略
1. 确定搜索对象和搜索策略
2. 选取适合的搜索方法(深度、广度、记忆化搜索)
3. 注意与其他方法的结合(贪心回溯、动态规划)
4. 减少搜索量(剪枝)
5. 注意事项:
A. 剪枝条件的正确性(加剪枝条件与不加剪条件的程序结果对照)
B. 搜索也是解决问题的一种方法,有时搜索程序也可以收到较好的效果,只要有较好的优化措施
1. 枚举类问题(有较好枚举方法或枚举量不大的问题)
2. 产生式系统(产生式规则,生成新的元素类问题)
3. 无任何好的解决办法或其他方法不能完成的问题
4. 搜索与其他方法的结合(与动态规划的结合、与贪心思想的结合等)
常用策略
1. 确定搜索对象和搜索策略
2. 选取适合的搜索方法(深度、广度、记忆化搜索)
3. 注意与其他方法的结合(贪心回溯、动态规划)
4. 减少搜索量(剪枝)
5. 注意事项:
A. 剪枝条件的正确性(加剪枝条件与不加剪条件的程序结果对照)
B. 搜索也是解决问题的一种方法,有时搜索程序也可以收到较好的效果,只要有较好的优化措施
最优化问题
1. 图论中的最优化问题
2. 规划问题
3. 特定指标(长度、次数等)最(极)值问题
常用策略
1. 动态规划
2. 图论中经典算法及其改正
3. 贪心+搜索解决办法
4. 贪心思想
5. 数学方法
6. 注意事项:
A. 动态规划阶段划分、状态描述及转移方程对动态规划效率的影响
B. 状态存贮对空间优化的影响(根据题目特点决定状态存贮数目、状态存贮方法的选取(滚动存贮、压缩存贮))
C. 双层动态规划
D. 多次动态规划
图论问题
1. 最小生成树问题、最小点基、中心点设置
2. 路径问题(最短路、关键路径、道路、ERLUR回路、哈密顿回路)
3. 拓扑排序问题(顶点的度)
4. 连通性问题(添加、删除边、点增加或减少连通度)
5. 流量问题
6. 二部图的匹配问题(最大匹配、最佳匹配)
常用策略
1. 点、边、权、度等图中基本元素关系
2. 拓朴排序作预处理
3. 图论算法的变形与改正
4. 图搜索算法
5. 标号法
6. 动态规划方法
7. 注意事项:
A. 选取图结构的存贮数据结构(矩阵、邻接表)
B. 在构建图模型时,考虑是否有多种构图方法
1. 最小生成树问题、最小点基、中心点设置
2. 路径问题(最短路、关键路径、道路、ERLUR回路、哈密顿回路)
3. 拓扑排序问题(顶点的度)
4. 连通性问题(添加、删除边、点增加或减少连通度)
5. 流量问题
6. 二部图的匹配问题(最大匹配、最佳匹配)
常用策略
1. 点、边、权、度等图中基本元素关系
2. 拓朴排序作预处理
3. 图论算法的变形与改正
4. 图搜索算法
5. 标号法
6. 动态规划方法
7. 注意事项:
A. 选取图结构的存贮数据结构(矩阵、邻接表)
B. 在构建图模型时,考虑是否有多种构图方法
2000-2016年NOIP普及组与提高组复赛考察内容
年份:题目名称:考查内容:难度
2000:乘积最大:划分动态规划:★★★
2000:税收与补贴问题:数学或枚举:★★
2000:单词接龙:深搜:★★★★
2000:计算器的改良:字符串处理:★★
2001:装箱问题:0/1背包或枚举:★
2001:数的计算:动态规划:★
2001:求先序排列:树的遍历:☆
2001:最大公约数和最小公倍数:数学(辗转相除法):★
2002:过河卒:棋盘动态规划:★☆
2002:级数求和:循环结构(枚举):☆
2002:选数:深搜、素数判定:★★★
2002:产生数:最短路(图论)、高精度:★★★★
2003:数字游戏:动态规划:★★★★★
2003:麦森数:分治、高精度运算:★★★
2003:栈:数学(卡特兰数):★★
2003:乒乓球:字符串处理:★☆
2004:FBI树:二叉树的遍历:★★
2004:不高兴的津津:枚举:☆
2004:火星人:数学(排列)、stl:★★★
2004:花生采摘:贪心:★
2005:采药:0/1背包:★
2005:循环:高精度运算、数论、快速幂:★★★★★
2005:淘淘摘苹果:枚举:☆
2005:校门外的树:枚举:★
2006:开心的金明:0/1背包:★
2006:明明的随机数:桶排序、冒泡:★
2006:Jam计数法:数学、字符串:★★★
2006:数列:数学(进制转换):★☆
2007:守望者的逃离:动态规划或枚举:★★★
2007:奖学金:快速排序(双关键字):★
2007:Hanoi双塔问题:数学、高精度:★☆
2007:纪念品分组:贪心、排序算法:★☆
2008:传球游戏:动态规划:★★★
2008:排座椅:贪心:★★
2008:ISBN号码:字符串处理:★
2008:立体图:字符输出:★★★
2009:道路游戏:动态规划:★★★★★
2009:分数线划定:快速排序(双关键字)★
2009:细胞分裂:数论:★★★★
2009:多项式输出:字符串处理:★
2010:数字统计:枚举:★
2010:接水问题:模拟:★★
2010:导弹拦截:排序+枚举,贪心:★★★★
2010:三国游戏:贪心:★★★
2011:瑞士轮:模拟、快拍、归并排序:★★★
2011:数字反转:模拟、字符串:★
2011:统计单词数:模拟、字符串函数:★
2011:表达式的值:栈、表达式计算、递推:★★★★★
2012:摆花:动态规划:★★★★
2012:质因数分解:枚举:★
2012:寻宝:模拟,模运算:★★★
2012:文化之旅:搜索、最短路(图论)、动规:★★★★☆
2013:小朋友的数字:动态规划、子段和:★★★★
2013:计数问题 :枚举:★
2013:表达式求值 :模拟或栈:★★
2013:车站分级:图论、拓扑排序:★★★★☆
2014:珠心算测验:枚举:★
2014: 比例简化:枚举:★☆
2014: 螺旋矩阵:数学分析:★★★
2014:子矩阵:搜索或dp:★★★★☆
2015:金币:枚举:★
2015:扫雷:枚举:★☆
2015:推销员:枚举、堆:★★★★☆
2015:求和:数学(数列):★★★
2016:买铅笔:模拟:☆
2016:回文日期:枚举:★☆
2016:海港:枚举:★★
2016:魔法阵:数学分析、枚举:★★★★
2000:税收与补贴问题:数学或枚举:★★
2000:单词接龙:深搜:★★★★
2000:计算器的改良:字符串处理:★★
2001:装箱问题:0/1背包或枚举:★
2001:数的计算:动态规划:★
2001:求先序排列:树的遍历:☆
2001:最大公约数和最小公倍数:数学(辗转相除法):★
2002:过河卒:棋盘动态规划:★☆
2002:级数求和:循环结构(枚举):☆
2002:选数:深搜、素数判定:★★★
2002:产生数:最短路(图论)、高精度:★★★★
2003:数字游戏:动态规划:★★★★★
2003:麦森数:分治、高精度运算:★★★
2003:栈:数学(卡特兰数):★★
2003:乒乓球:字符串处理:★☆
2004:FBI树:二叉树的遍历:★★
2004:不高兴的津津:枚举:☆
2004:火星人:数学(排列)、stl:★★★
2004:花生采摘:贪心:★
2005:采药:0/1背包:★
2005:循环:高精度运算、数论、快速幂:★★★★★
2005:淘淘摘苹果:枚举:☆
2005:校门外的树:枚举:★
2006:开心的金明:0/1背包:★
2006:明明的随机数:桶排序、冒泡:★
2006:Jam计数法:数学、字符串:★★★
2006:数列:数学(进制转换):★☆
2007:守望者的逃离:动态规划或枚举:★★★
2007:奖学金:快速排序(双关键字):★
2007:Hanoi双塔问题:数学、高精度:★☆
2007:纪念品分组:贪心、排序算法:★☆
2008:传球游戏:动态规划:★★★
2008:排座椅:贪心:★★
2008:ISBN号码:字符串处理:★
2008:立体图:字符输出:★★★
2009:道路游戏:动态规划:★★★★★
2009:分数线划定:快速排序(双关键字)★
2009:细胞分裂:数论:★★★★
2009:多项式输出:字符串处理:★
2010:数字统计:枚举:★
2010:接水问题:模拟:★★
2010:导弹拦截:排序+枚举,贪心:★★★★
2010:三国游戏:贪心:★★★
2011:瑞士轮:模拟、快拍、归并排序:★★★
2011:数字反转:模拟、字符串:★
2011:统计单词数:模拟、字符串函数:★
2011:表达式的值:栈、表达式计算、递推:★★★★★
2012:摆花:动态规划:★★★★
2012:质因数分解:枚举:★
2012:寻宝:模拟,模运算:★★★
2012:文化之旅:搜索、最短路(图论)、动规:★★★★☆
2013:小朋友的数字:动态规划、子段和:★★★★
2013:计数问题 :枚举:★
2013:表达式求值 :模拟或栈:★★
2013:车站分级:图论、拓扑排序:★★★★☆
2014:珠心算测验:枚举:★
2014: 比例简化:枚举:★☆
2014: 螺旋矩阵:数学分析:★★★
2014:子矩阵:搜索或dp:★★★★☆
2015:金币:枚举:★
2015:扫雷:枚举:★☆
2015:推销员:枚举、堆:★★★★☆
2015:求和:数学(数列):★★★
2016:买铅笔:模拟:☆
2016:回文日期:枚举:★☆
2016:海港:枚举:★★
2016:魔法阵:数学分析、枚举:★★★★