Valya and Tolya are an ideal pair, but they quarrel sometimes. Recently, Valya took offense at her boyfriend because he came to her in t-shirt with le ...
分类:
其他好文 时间:
2019-11-12 22:03:49
阅读次数:
117
介绍 克鲁斯卡尔(Kruskal)算法是用来求出连通图中最小生成树的算法。 连通图:指==无向图==中==任意两点都能相通==的图。 最小生成树:指联通图的所有生成树中==边权重的总和最小==的树(即,找出一个树,让其联通所有的点,并让树的边权和为最小)。 算法思想 克鲁斯卡尔算法的主要基本思想有两 ...
分类:
编程语言 时间:
2019-11-12 20:06:13
阅读次数:
76
先求出任意一棵最小生成树,然后对边分类讨论1.非树边,答案即最小生成树的环上的最长边2.树边,反过来考虑,相当于对于每一个点对那条路经打上标记,取min对于1直接用倍增维护即可,对于2可以用树链剖分/差分+启发式合并但都需要两个log,所以有一种很神奇的做法考虑从小到大枚举非树边,然后暴力修改,容易 ...
分类:
其他好文 时间:
2019-11-12 16:02:56
阅读次数:
76
线段树(区间修改,区间和):#include #include #include using namespace std;int c[1000000],n,m;char s;void update(int p,int l,int r,int x,int add){ int m=(l+r) / 2; ... ...
分类:
编程语言 时间:
2019-11-12 10:47:37
阅读次数:
67
/*每个点自己建立一座发电站相当于向超级源点连一条长度为c[i]的边,连电线即为(k[i]+k[j])*两点间曼哈顿距离,跑最小生成树(prim适用于稠密图,kruscal适用于稀疏图)*/ #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>usi ...
分类:
其他好文 时间:
2019-11-11 09:31:31
阅读次数:
84
原理简介 非严格次小生成树是在最小生成树有多棵时未被选为最小生成树的树,而严格最小生成树要求其边权和是第一个大于最小生成树的边权和。两者算法大致相同,都是枚举非树边加入树中,很明显会形成一棵基环树,在基环的环(不包含加入的边)中找出最大值被加入边代替更新答案,只是单纯找最大得到非严格,而找出第一个严 ...
分类:
其他好文 时间:
2019-11-11 00:55:39
阅读次数:
126
关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图。 强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连通图。 连通网:在连通图中,若图的边具有一定的意义,每一条边都对应着一个数,称为权;权代表着连接连个 ...
分类:
编程语言 时间:
2019-11-09 23:57:40
阅读次数:
195
次小生成树是指在一个树中除最小生成树外第二小的生成树,因此它是在最小生成树算法上衍生的。首先在求出最小生成树后,假如我们要加上一条树外的边,这样就会形成一个闭环,然后将这个闭环的最大 的边删除,那么剩下的依然是一个树,如果这个树<=最小生成树,那么它就是次小生成树。 如果我们要加边的话,加的肯定是树 ...
分类:
编程语言 时间:
2019-11-09 23:43:45
阅读次数:
112
题目传送门(内部题131) 输入格式 第一行三个整数$n$、$m$和$Q$。 接下来$m$行每行三个整数$x$、$y$、$z$($1\leqslant x,y\leqslant n,1\leqslant z\leqslant 1,000,000$),表示有一条连接$x$和$y$长度为$z$的边。 接 ...
分类:
其他好文 时间:
2019-11-09 10:05:13
阅读次数:
74
Description "题库链接" 给你一张 $n$ 个点的完全图,其中有 $m$ 条边长度为 $1$,其余全为 $0$。问你这张图的最小生成树为多少。 $1\leq n\leq 100000,0 \leq m \leq \min\left(\frac{n(n 1)}{2},10^5\right) ...
分类:
其他好文 时间:
2019-11-09 00:43:08
阅读次数:
195