
图论
Lopka
大一新生 真.萌新
大四新生 还是萌新
现在工作 依然萌新
展开
-
Kru 最小生成树
思路从所给的图中,开始挑边,找到最小的权值边加入到树中,如果加入后成环,也就是这条新加边的两个端点本来就联通,那么就不选,选下一条,时间复杂度mlog(m)模板#include<iostream>#include<algorithm>#define Maxn 300100using namespace std;struct node{ int a,b; int qz;};int f[Maxn];bool cmp(node a,node b){ retur原创 2020-11-21 20:37:26 · 372 阅读 · 0 评论 -
LCA 最近公共祖先 CodeForces Minimum spanning tree for each edge
LCA基础思想给定一个树/无向图,再给定若干个询问,询问内容是给出两点,要求给出这两点的最近公共祖先。这样子就像两个点各有一条路径回溯到根节点,求这两条路径第一次相交的点在哪里所以最基础的lca,我们就可以找到两条路径,然后找出那个LCA,具体操作就是在一棵树内,标出每个点的深度,然后先把低的那个点跳到高处,然后两个点重合就说明找到LCA,如果不同就一同往上跳,直到找到相同的爹。LCA二进制跳表刚刚那个时间复杂度是O(n^2),所以挺鸡肋的,我们就要用到伟大的二进制,我们知道对于任意一个整数n,它原创 2020-11-17 21:29:26 · 169 阅读 · 0 评论 -
第八届蓝桥杯C/C++ B组决赛 发现环
标题:发现环小明的实验室有N台电脑,编号1~N。原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出现了BUG。为了恢复正常传输。小明需要找到所有在环路上的电脑,你能帮助他吗?输入第一行包含一个整数N。以下N行每行两个整数a和b,表示a和b之间有一条数据链接相连。对于3原创 2020-11-09 22:36:31 · 171 阅读 · 0 评论 -
蓝桥复习——并查集模板
并查集思想我朋友的朋友还是我的朋友记录每个点的父亲,也就是两个点有关系选一个当父亲。先把每个点的父亲设置为自己本身,然后再加入两点有关系时,找到两人的父亲,把两个人的父亲设为父子关系就完成了连通分支的合并。并查集函数int un(int root) //查找父亲{ int son=root; while(root!=pre[root]) root=pre[root]; while(son!=root) { int temp=pre[son]; pre[son]=root;原创 2020-10-16 22:21:43 · 200 阅读 · 0 评论