信息学奥林匹克竞赛涉及到的数学知识
前言
你是否听到过这种声音:
学这破东西有什么用,高考考吗?
或者是这样:
学好数理化,走遍天下都不怕!
本文将叫你怎样反击:
你只需要说,学OI不论年龄三年都会掌握下面的知识:
数学离散数学集合论 关系 代数系统 数理逻辑 图论
组合数学排列组合 母函数 群论 递推与递归 莫比乌斯反演
数学线性规划 动态 整数
高等数学向量 行列式与矩阵 微积分初步
概率统计
初等数论素数 整数理论 同余与模线性方程
计算几何
数据结构存储结构线性表
(一级结构)静态:数组 栈 队列 广义表 字符串
动态:指针链表 动态数组
树
(二级结构)表示法(静态、动态) 二叉树 森林
图
(三级结构)表示法(矩阵、邻接表、三元组)
特殊结构散列表(HASH表) 并查集 线段树 后缀树 哈夫曼树与哈夫曼编码 地址表Bit图 滚动数组 棋盘图 边顶置换图 二分点图(网络流)
常用方法遍历树 图 前/中/后序优先
转化拓扑排序(三级结构转一级结构) 最小生成树 最小树形图(三级结构转二级结构) 逆遍历
压缩路径树的线索化
压缩存储
查找线性直接 折半Fab
树形二叉查找树 平衡二叉树B+树B-树 线索二叉树索引表
排序插入排序直接排序、折半排序、2-路排序
交换排序冒泡排序 快速排序 归并排序
堆排序
基数排序链式基数排序 桶排序
代码素养代码的编写速度和准确性 误码率
算法实现
算法优化
调试 查错 测试
习惯变量名 注释 缩进 模块化
基本算法数学高精度计算(模拟计算)
表达式处理括号 前/中/后缀表达式 表达式树
排列组合求值 嵌套控制
高斯消元法
快速傅里叶变换(FFT)
筛选素数素数表
分数处理
基本操作实现大量数据赋值与移动Fillchar fillword move等函数
处理实数比较大小 高精度
字符串处理基本函数KMP算法
图论
(显示图搜索)路径问题
(边集)连通性测试传递闭包算法 极大强连通子图 最小点基
最短路问题标号法 第k小路 减半最短路Dijkstra算法floyd算法bellman-ford算法Warshall算法
特殊路径欧拉路及回路 哈密尔顿路及回路
图的中心和重心
生成树Kruskal算法Prim算法
集
(顶点集)覆盖集
独立集
支配集
割顶和块
网络流容量有上下界的网络最大/ 小流
容量有上下界的网络最小费用最大/ 小流
顶容量网络最大流
供求约束可行流
二分图匹配匈牙利算法
关键路径
搜索
(隐式图搜索)深度优先搜索
(回溯法)剪枝优化
预处理
记忆化搜索
可变下界的深度优先搜索
随机化搜索
广度优先搜索双向广搜*多向广搜
启发式搜索(A算法)
分枝定界
多阶段决策贪心算法
背包动态规划
棋盘动态规划
划分动态规划
区间动态规划
树形动态规划
状态压缩型动态规划
其他构造法穷举
模拟
好多东西都是部分大学的数学专业才学到的,计算机专业也几乎是浑浑噩噩的学。
某些家长看到这里已经开始犹豫了,我告诉你们:
不要报少儿编程!!!
我不想为自己创建竞争对手,但是三年级就可以直接学C++,然后参加CSP,参加NOIP、NOI、IOI。最后保送。
这是mcr130102的博客,转载请注明出处