首页 > 其他 > 详细

有关一些套路的总结~~

时间:2019-10-18 20:22:41      阅读:65      评论:0      收藏:0      [点我收藏+]

我认为算法竞赛主要分为以下几类(这只是博主的一些个人看法~~)

  1. 基础算法;

  2. 字符串;

  3. 图论;

  4. 数据结构;

  5. 动态规划;

  6. 数论;

  7. 计算几何;

下面就是关于这些知识板块的一些套路总结(对题目的转化);

 1.基础算法:

基础算法也就是一些通用的技巧,比如:贪心,二分,倍增……

别看这些东西看起来似乎很简单的样子,但是当真正的运用起来时,你就会发现他们其实并不简单;

贪心:不相交区间,区间选点,区间覆盖,工作调度,有期限的单位时间调度;

二分:最大值最小/最小值最大,在单调性序列中快速查找;

倍增:静态区间查询(RMQ),点/线段的快速移动(树上/区间);(通过预处理来降低在执行其他操作时的复杂度)

2.字符串(还没系统地学习过~~)

3.图论:

图一般分有向图和无向图,在这其中还有一些特殊例子:环,树;

最短路算法:Dijkstra(有队列优化),Floyd,Bellman-ford(有队列优化);

最小生成树:Kruskal(边),Prim(点);

Tarjan:有向边(强连通分量),无向边(割点,桥);

欧拉回路:DFS/Fleury算法

二分图,网络流……(没学过~~)

4.数据结构:

树状数组/线段树:加速区间操作;

主席树(动态开点线段树):按秩合并,区间第K大

树链剖分:一种对树上节点重新编号的方法;

平衡树:(还没学~~)

 

有关一些套路的总结~~

原文:https://www.cnblogs.com/nnezgy/p/11700186.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!