树剖求lca 第二类Stirling数 倍增+floyd 跑路【G[i][j][logn] 和 dis[i][j]的巧妙定义】 spfa 负环 多组要建图的数据记得mem(head,0),记得初始化cnt[s]=1;,cnt[v] n而不是 =(容斥原理) 欧拉图 考虑:1.连通 2.欧拉图的判定 ...
分类:
其他好文 时间:
2019-10-08 12:33:51
阅读次数:
80
"Problem" 这题的题意是 求一条 经过 起点和终点的 最长路径。且一个点只能经过一次。 我们设定 $dis_{i,j}$ 为 i 到 j 的距离(应该没有重边) 要注意的是 不能用 $Floyd$ 求最长路 这样会挂掉 因为你这样 就没办法保证 点 $i$ 只经过一次 显然是状压dp 我们考 ...
分类:
其他好文 时间:
2019-10-07 11:24:02
阅读次数:
82
一、 最短路 Floyd 算法,求解图中任意两点的最短路,可处理有向图或负权,时间复杂度 Θ(n3) Dijkstra 算法,求解图中某一点到其余点的最短路,时间复杂 度 Θ(mlog2 n) Bellman-Ford 算法,求解图中某一点到其余点的最短路,时间 复杂度 Θ(nm) 启发式搜索算法A ...
分类:
其他好文 时间:
2019-10-05 10:55:14
阅读次数:
75
Floyd算法: 复杂度O(n^3) 首先这个算法使用暴力dp来写的,很容易就会TLE。但是这是一个多源最短路算法,可以求出来任意两点之间的最短距离 示例代码: 1 #include <cstdio> 2 #include <iostream> 3 #define INF 0x3f3f3f3f 4 ...
分类:
其他好文 时间:
2019-10-05 10:26:58
阅读次数:
74
题目: 分析: 由数据范围可知:前五个点是Floyd,后五个点是一颗树,两两点之间的路径是唯一的,只需要求lca即可。 Floyd注意实现细节: 1.初始化时要把dis[i][i]赋成0 2.只有1个dis数组 倍增注意: 统计答案的时候要先统计在跳fa!! #include<bits/stdc++ ...
分类:
其他好文 时间:
2019-10-04 22:47:39
阅读次数:
113
很棒的数据分治题 读入里面说了会读入测试点编号…… 其实是很明显的暗示了…… 一半的数据保证是连通图,1 ≤ n ≤ 200,1 ≤ Q ≤ 10^5 这么小的n,直接Floyd跑一遍就好了,相当于Floyd的板子题 另一半的数据保证图连通,无环,1 ≤ n ≤ 10^5,1 ≤ Q ≤ 10^5 ...
分类:
其他好文 时间:
2019-10-04 20:31:34
阅读次数:
105
Prim算法 Kruskal算法 Dijkstra算法(从一个顶点到其余各顶点的最短路径) Floyd算法(每对顶点之间的最短路径) 拓扑排序 ...
分类:
编程语言 时间:
2019-10-04 16:36:57
阅读次数:
96
https://www.luogu.org/problem/P4822 现在这个大陆上有 N 个城市,M 条双向的道路。城市编号为 1~N,我们在 1 号城市,需要到 N 号城市,怎样才能最快地到达呢?这不就是最短路问题吗?我们都知道可以用 Dijkstra、Bellman-Ford、Floyd-W ...
分类:
其他好文 时间:
2019-10-03 22:02:16
阅读次数:
93
P1613 跑路 倍增 我们考虑floyd 对于i,j如果有一个中介k使得i->k只用2^p以及k->j只用2^p,那么i->j可以一步到达 最后跑一遍floyd即可 记得是有向图! 代码: ...
分类:
其他好文 时间:
2019-10-03 14:30:16
阅读次数:
85