NOI竞赛大纲提高组算法详注

基础算法:

  贪心:

    定义:在进行问题求解的时候,不从整体考虑结果,只考虑当前最优,

    得到的是在某种意义上的局部最优解。

    适用条件:整体最优一定满足局部最优,并且不依赖后面要做出的选择。

  递推:

    定义:优当前状态或已知的几个状态求出下一个或之后的某个状态。

      适用条件:状态之间存在明显状态转移方程。

  递归:

    定义:将一个问题划分为多个子问题进行求解。

  二分:

    定义:就是把一个复杂的问题分成两个相似的子问题,再把子问题分成更

  小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的

  解的合并。

    适用范围:查找有序序列中是否存在满足某条件的元素,第一个满足某条

  件的元素的位置,最后一个满足某条件的元素的位置。 一般也用于求最大值最

  小或最小值最大问题。

    二分查找模板:

while(l<r)
{
    mid=l+r>>1;
    if(条件)r=mid;
    else l=mid-1;
}
View Code

 

 

 

  倍增

 





 

数值处理算法:

  高精度加/减/乘/除法

排序算法:

  冒泡排序,选择排序,插入排序,归并排序,快速排序,堆排序,树形选择排序,

  桶排序,基数排序

图论:

  深度优先遍历,广度优先遍历,最近公共祖先,最小生成树次小生成树

  单源最短路,单源次短路,欧拉(回)路,二分图,强连通分量,缩点,割点 割边

数论:

  唯一分解定理欧几里得算法扩展欧几里得算法埃氏筛法,欧拉筛,同余,欧拉定理

  欧拉函数,费马小定理,威尔逊定理,逆元,中国剩余定理,组合数学,线性代数

STL模板:sort,stack,vector,queue,deque,prioriity_queue,set,nultiset,map,pair

数据结构:

  ST表,并查集,线段树树状数组,字典树

  笛卡尔树,二叉平衡树,基环树,哈希表

字符串算 :KMP

 

  因为本人时间有限(其实是太懒了),本博客还在陆续维护中,算法中的超链接也在进一步完善,谢谢大家的支持。

 

  

 

 

 

posted @ 2021-08-23 17:16  君与  阅读(277)  评论(0编辑  收藏  举报