![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM - 算法
R-bin
Technology changes the world
展开
-
ACM - 算法 | ST算法处理RMQ问题
RMQ RMQ (Range Minimum/MaximumQuery)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大)值,也就是说,RMQ问题是指求区间最值的问题。 构建笛卡尔树可以解决RMQ问题,同时利用ST(倍增)算法构造dp二维数组,也可以完成RMQ问题的查询。 代码思路 定义: dp[i][j]表示数组ar...原创 2019-07-20 00:48:26 · 179 阅读 · 0 评论 -
ACM - 算法 | 快速幂
快速幂 顾名思义,快速幂就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。 快速幂的思想 假设一个情况,我们要求 511 的具体值。利用常规思路,即为 5∗5∗5∗5∗5∗5∗5∗5∗5∗5∗5=488281255*5*5*5*5*5*5*5*5*5*5=48 828 1255∗5∗5∗5∗5∗5∗5∗5∗5∗5∗5=48828125这样的操作...原创 2019-07-25 11:12:29 · 265 阅读 · 0 评论 -
ACM -算法 | 堆优化Dijkstra算法
Dijkstra算法 对于一个边权为正的图,我们可以利用Dijkstra算法求出单源最短路径(SSSP),对于常规的Dijkstra算法,其复杂度为 O(n2)O(n^2)O(n2) ,显然在 nnn 较大的时候,可能导致耗时过长,通过优化我们可以获得一种更加快速的Dijkstra算法,时间复杂度为 O(mlogn)O(mlogn)O(mlogn) 。本篇博客的代码源于**《算法竞赛入门经典(第2...原创 2019-07-30 21:18:35 · 337 阅读 · 1 评论