![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 60
Wu_while
一名退役OIer
展开
-
一些奇怪的图
普通树:普通二叉树:完全二叉树:满二叉树:链:森林:环:菊花图:(逐渐诡异)无向基环树:基环外向树:基环内向树:仙人掌:沙漠:原创 2021-10-13 17:09:37 · 557 阅读 · 0 评论 -
Tarjan强连通分量算法
“Tarjan 陪伴强连通分量生成树完成后思路才闪光欧拉跑过的七桥古塘让你 心驰神往“”——《膜你抄》原创 2021-10-12 21:31:35 · 608 阅读 · 3 评论 -
单源最短路径算法
Dijkstra可以用优先队列优化到O(mlogn)O(mlogn)O(mlogn)的时间复杂度。注意!Dijkstra算法只能处理正边权!负边权要用SPFA!代码(优先队列优化):#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;struct st{ int to; int dis; int nxt;}edg原创 2021-08-14 21:07:47 · 73 阅读 · 1 评论 -
最小生成树(Prim和Kruskal)
引入例题:(洛谷 P3366 【模板】最小生成树)给出一个无向图,求出最小生成树,如果该图不连通,则输出 orz。Prim这个东西我不写了。。。我只说说我最近研究 抄袭 的最新成果:Prim可以使用优先队列优化,能够达到O(nlogm)O(nlogm)O(nlogm)的优秀复杂度(和Dijkstra一样)。代码(链式前向星+优先队列优化):#include<iostream>#include<cstdio>#include<cstring>#incl原创 2021-08-13 18:37:07 · 87 阅读 · 1 评论 -
染色问题(并查集)
前置芝士并查集引入来看一道例题:在一条数轴上有 nnn 个点,分别为 1∼n1 \sim n1∼n。一开始所有的点都被染成黑色。接着进行 mmm 次操作,第 iii 次操作将 [l,r][l,r][l,r] 这些点染成白色。请输出每个操作执行后剩余黑色点的个数。暴力?嗯。。。直接T飞我们要用并查集!实现这题看似与并查集毫无关联。但是,我们仔细推敲过后,发现:还是毫无关联好吧,我们来模拟一下暴力的过程。初始时是这样的:(为了便于表述,用格子代替点)我们对[4,5][4,5][4,原创 2021-08-12 20:27:53 · 866 阅读 · 1 评论 -
并查集详解
引入例题:(洛谷 P3367 【模板】并查集)第一行包含两个整数 N,MN,MN,M ,表示共有 NNN 个元素和 MMM 个操作。接下来 MMM 行,每行包含三个整数 Zi,Xi,YiZ_i,X_i,Y_iZi,Xi,Yi 。当 Zi=1Z_i=1Zi=1 时,将 XiX_iXi 与 YiY_iYi 所在的集合合并。当 Zi=2Z_i=2Zi=2 时,输出 XiX_iXi 与 YiY_iYi 是否在同一集合内,是的输出 Y;否则输出 N。显然可以暴力解决。。。这就要用原创 2021-08-12 19:39:45 · 207 阅读 · 1 评论