`
基础入门的输入与输出操作训练
常见变量与数据类型,如int,double,float,bool等
了解条件分支,学会使用if和else语句
了解循环结构,学习While关键字的使用
学习使用For循环,并且对循环进一步加强理解,循环是基础中非常重要的一部分
了解多重循环的实现及应用
无相关在线评测试题
循环的常见应用
循环应用的进阶,需要更多的思考
涉及简单的枚举,循环在枚举中的使用
一维数组的练习与使用
常见基础算法及其技巧
模拟 1:简单模拟
语法整理:数组经典应用
语法整理:字符串经典应用
基础算法整理:最值、求和、计数及嵌套使用
枚举 1:简单枚举、枚举 2:枚举优化
语法补充:sort 函数、 memset 函数,这是我们后期常用的两个函数。
语法整理:函数与递归经典应用
模拟 2:冗长问题分析模拟
简单贪心
经典贪心例题
高精+高精、高精-高精、int128*
高精x低精、高精x高精*、高精/低精、高精%低精
栈(stack)、队列(queue)、动态数组(vector), map(映射), set(集合)
快速排序、归并排序
全排列、八皇后等基本深搜问题
连通块、迷宫问题等基本广搜问题
斐波那契问题、杨辉三角、流感传染、昆虫繁殖、数字三角形*
一般性动态规划、01背包问题、完全背包问题
装箱问题、混合背包、分组背包、有依赖的背包、二维费用的背包*
动态规划一般性问题综合
直接存边、邻接矩阵、简单应用(图的连通块、拓扑排序*)
multiset、multimap的应用
染色方法、标准并查集、路径压缩*
Kruskal 算法与经典例题、还有HDU的1233、1875、1879
迭代加深搜索
海伦公式、卡特兰数、快速幂
基本概念与哈希在判断同构上的妙用
三分算法* ZOJ3203、POJ3737
区间 DP、数位 DP、单调队列优化*
链式前向星的运用
树的直径、树的重心 HDU:3534、4514、4607;POJ:1655、1849、1985、2631、3107
Floyd相关经典问题
Bellman-ford、SPFA、经典问题、差分约束* POJ 1201
Prim算法、次小生成树、最小树形图*
前缀和、RMQ、简单倍增,无修改的区间和查询、区间最值查询,及更多倍增应用
单点修改区间和查询、结合差分数组的区间修改单点查询 POJ:2155、2299
字符串匹配算法、Next数组高级用法* POJ:2406、3167
标准字典树、01字典树与区间最大异或和 HDU:1251,2072,2001,1247,4825,3630,1451,2594,2203,1075
倍增求LCA、LCA基础应用,HDU:2586
单点修改区间和查询、单点修改区间最值查询 hdu:1166、1754
区间修改区间查询、权值线段树*
带权并查集。HDU3038、HiHo1515、POJ1182
矩阵乘法、矩阵快速幂
质数算法进阶、扩展欧几里得、费马小定理、逆元
欧拉定理、欧拉函数及应用 : http://wikioi.cn/training/mission/155
数位类进阶动态规划问题
详细进阶树型动态规划问题
详细进阶状态压缩的动态规划问题
详细进阶区间类动态规划问题
POJ3974
平衡树Splay训练题
pku 3261,pku 3729,pku 2774,pku 3693,pku 3294,pku 3080,pku 3415,pku 1743
树的点剖分,树链剖分
快速傅里叶变换、快速数论变换
LCA问题常见做法有三种:倍增法、RMQ+dfs序、tarjan算法(dfs+并查集)
第一周我们通过一些基础的问题,回顾语法的综合使用
第二周我们开始做一些递归的问题。并扩展一些简单的搜索。+POJ1321
第三周开始做一些队列与广搜的学习
第四周主要处理一些基础的递推问题与简单地动态规划