其次,学习基础算法,数据结构和数学知识,
•排序,这个在比赛中直接使用 sort() 就可以了,还要掌握结构体排序。
•二分查找,也叫折半查找,在编程比赛经常会遇到。
•贪心算法,贪心算法一般就是找到最优解的方法,比较灵活。
•DFS和BFS,图形搜索算法,都是经常使用的。
•Dijkstra, 最短路径算法。
•动态规划,简称DP,DP题目难在公式的推导,可以先学习基础的背包问题。
•计算几何,一般涉及较少。
•树,二叉树的前、中、后序遍历,树状数组,最小生成树(Kruskal)。
•栈和队列,在比赛中一般使用STL 封装好的容器来实现栈和队列,另外,map,set,vector,pair 都是经常使用的。
•简单数学,最大公约数,最小公倍数,素数的筛选,三角形公式,等差数列等在学习的过程中一定要刷题,一方面加强知识的理解,另一方面提高自己的代码能力(速度,Debug)