摘要: 算法 最小生成树+瓶颈生成树 思路 瓶颈生成树 定义无向图G,G的瓶颈生成树是一棵 “ 树上最大边权值 edge 在G的所有生成树中最小 ” 的生成树,这样的生成树可能不止一棵。瓶颈生成树的值为树上最大边权值 edge 最小生成树是瓶颈生成树的充分不必要条件。 命题:最小生成树一定是瓶颈生成树。 证 阅读全文
posted @ 2020-05-01 16:31 人生有味是清欢 阅读(164) 评论(0) 推荐(0) 编辑
摘要: #include <cmath> #include <cstdio> #include <iostream> #include <algorithm> using namespace std; const int N = 5000100; int n, m, cnt, fa[N], sum; dou 阅读全文
posted @ 2020-05-01 16:12 人生有味是清欢 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 算法 最小生成树+prim 思路 既然这题本质上就是Prim算法, 我就在这里写一写我对Prim算法的理解. 两个最小生成树算法, 都有一个共同的思想: 这棵树是一点一点长大的; 并且每次生长, 都是贪心的. 不同之处是: Kruscal算法是以边为中心的, 每次找最小的并且有用的边添加到树上; P 阅读全文
posted @ 2020-04-25 09:19 人生有味是清欢 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 算法 并查集+逆序 思路 做这道题前呢,我们先出门左转关闭农场,一道类似的更简单一丢丢的题 然后,我们考虑一下这题,因为并没有过多的操作,只是要我们求一下连通块的个数而已(也就是连通性,具有传递性的连通),而这恰好是并查集所擅长的。 然而,我们正向看题目时就会发现不支持删除操作的并查集似乎办不到。但 阅读全文
posted @ 2020-04-19 12:59 人生有味是清欢 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 算法 并查集+逆序 思路 首先读入相连的点,但这里不能直接合并建立并查集,因为并查集没有Ctrl+Z操作(就是无法分离两个已经合并的集合),所以我们要先存起来,等所有的询问都读入之后,倒着进行操作。 我们考虑怎样倒着操作: 首先,读入数据,把所有的数据都存起来,其中x[i],y[i]表示第i次读入的 阅读全文
posted @ 2020-04-19 12:44 人生有味是清欢 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 算法 并查集+map 思路 板子改为字符串 代码 #include<iostream> #include<cstdio> #include<map>//map库 using namespace std; map<string,string> a;//建立映射 string fin(string x) 阅读全文
posted @ 2020-04-19 08:47 人生有味是清欢 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 算法 并查集+map 思路 与负数,用map 代码 #include<bits/stdc++.h> #define r(i,a,b) for(int i=a;i<=b;i++) using namespace std;int n,m,p,q,u,v,tat,tot; map<int,int>f;// 阅读全文
posted @ 2020-04-19 08:38 人生有味是清欢 阅读(207) 评论(0) 推荐(0) 编辑
摘要: #include<iostream> #include<algorithm> using namespace std; int n,m; long long fa[100000001]; struct hay { int x,y,z; }a[10001]; inline bool cmp(hay a 阅读全文
posted @ 2020-04-19 08:05 人生有味是清欢 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 算法 01背包+并查集 思路 既然这样,那这道题是否可以转换为01背包呢? 答案很明显是可以的。可以利用并查集,将这m组配对购买的商品划到一个集合里,这样就可以确定买了其中一个就得买另一个。 最后就是01背包啦! 代码 #include <cstdio> #include <iostream> #i 阅读全文
posted @ 2020-04-18 20:00 人生有味是清欢 阅读(172) 评论(0) 推荐(0) 编辑
摘要: #include <cstdio> #include <cmath> #include <cstring> #include <queue> #include <iostream> #include <algorithm> using namespace std; int h[50001],ne[5 阅读全文
posted @ 2020-04-18 19:56 人生有味是清欢 阅读(178) 评论(0) 推荐(0) 编辑