首页
首页
BOT
沸点
课程
直播
活动
AI刷题
NEW
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
算法详解
已注销
创建于2023-02-15
订阅专栏
算法详解
暂无订阅
共8篇文章
创建于2023-02-15
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
平面分治详解 超级详细(附带例题 最近点对问题(给了题目))(UVA10245,P1257,P1429)
我们考虑使用分治法,大概思路就是将这个平面分成两半(横的分竖的分都行,这里讲的是根据横坐标竖着分) 注意我们这个不是按照(最前的x坐标 + 最后的x坐标)/ 2这么分,因为这样可能会递归深度退化,我们应该按照最中间的那个点的x坐标来分,这样保证每次递归,点的数量都减半。【相当于我...
树上分治详解 超级详细(附带例题 poj1741(给了题目))
重心定义:我们称若删除某顶点后得到的最大子树的顶点数最少,则该顶点为此树重心,不难得出删除该点后子树得顶点数一定不超过 n / 2 如何得到:若想要找到重心,我们可以沿着最大子树方向移动(向最大子树方向移动,便相当于减小最大子树大小,直至找到当移动后的点,最大子树大小大于移动前的...
强连通分量分解详解 超级详细
为什么可以从任何顶点开始? 因为我们是把尾部最先放入。不管我们从哪个点开始遍历,都能遍历到当前剩余顶点集当中,最接近尾部的点,所以不管我们从哪里遍历,都能将该点及该点后面的所有点正确放入。 例如我们按 1 2 3 号顶点的顺序开始遍历,那么我们放入的点,就是圈起来的部分。 为什么...
Rabin-Karp ( 字符串匹配 )详解
int al = a.length(), bl = b.
最小路径覆盖详解 超级详细(附带例题 Stock Charts(给了题目))
最小路径覆盖定义:在图G中找出一些路径,每条路径从起点走到终点,使所有点均被覆盖,且只被覆盖一次,选出的这些路径组成路径覆盖。如果找出最少的路径成为一个路径覆盖,则称为最小路径覆盖。#include <stdio.#include <string.edge[i].for(int ...
LCA详解
for(int i = 0; i < G[v].for(int i = 0; i < G[v].for(int i = 0; i < G[v].
后缀数组 详解
return S.substr(a) < S.for(int i = 0; i <= S.sort(sa, sa + S.for(int i = 1; i <= S.int i = a + k <= S.int j = b + k <= S.for(int i = 0; i <=...
高度数组 详解
for(int i = 0; i < S.while(i + h < S.length() && sa[j] + h < S.