暂无搜索历史
分析:先找最左边的x,check函数为要找的整数区间,在x的右边,所以是qmid >= x, x在mid的左边,所以x所在区间为l, mid。再找最右边的x,...
分析:此题为最长上升子序列模型的变形,通过分析可以发现其实就是正向求一边最长上升子序列,反向求一便最长上升子序列。再进一步就是从正向开始求一边最长上升子序列和最...
分析:本题是一道非常经典的dp问题,数字三角形问题可以从上往下走来寻找最大路径,也可以从下往上走来寻找最大路径,我们可以发现从上往下走我们要分析每个数是怎么走到...
线性筛时间复杂度O(n) 埃氏筛时间复杂度O(nloglogn)埃氏筛会多次筛除一个元素,线性筛一个数只会被最小的质因数筛除线性筛是最强的判断质数的方法,模板会...
数据:描述事物的符号记录称为数据。数据的种类有文字、图形、图象、声音、正文等等。数据与其语义是不可分的。
求1~n中质数的个数 void get_primes(int n) { for(int i = 2; i <= n; i ++) { ...
最简单的判断质数的方法 bool is_prime(int x) { if (x < 2) return false; for (int i =...
匈牙利算法是一种在多项式时间内求解任务分配问题的组合优化算法,并推动了后来的原始对偶方法。1955年,库恩(W.W.Kuhn)利用匈牙利数学家康尼格(D.Kőn...
时间复杂度:O(m+n) int n; // n表示点数 int h[N], e[M], ne[M], idx; // 邻接表存储图 int ...
克鲁斯卡尔算法是求连通网的最小生成树的另一种方法。与普里姆算法不同,它的时间复杂度为O(eloge)(e为网中的边数),所以,适合于求边稀疏的网的最小生成树 。...
普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Ver...
Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似。该算法名称以创始人之一、1978年图...
SPFA 算法是 Bellman-Ford算法 的队列优化算法的别称,通常用于求含负权边的单源最短路径,以及判负权环。SPFA 最坏情况下复杂度和朴素 Bell...
bellman-ford算法一般在竞赛中用不到,因为它的时间复杂度是严格的O(VE),存在负权边的单源最短路问题常用SPFA算法,但如果给我难题给出要求经过的边...
迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有权...
int g[N][N]; // 存储每条边 int dist[N]; // 存储1号点到每个点的最短距离 bool st[N]; // 存储每个点的最短...
············1.1.1朴素dijkstra算法 O(n^2) 适合稠密图
bool topsort() { int hh = 0, tt = -1; // d[i] 存储点i的入度 for (int i = ...
queue<int> q; st[1] = true; // 表示1号点已经被遍历过 q.push(1); while (q.size()) { in...
int dfs(int u) { st[u] = true; // st[u] 表示点u已经被遍历过 for (int i = h[u]; i...
暂未填写公司和职称