- 博客(5)
- 资源 (5)
- 问答 (2)
- 收藏
- 关注
原创 HDU - 4081(次小生成树 + DFS)
题意要求a/b的最大值。 其中a是任意两点的点权和,b是除去这两点剩下的最小生成树的值。 我们可以先求出最小生成树,然后不断删边,然后求出删去这条边后的剩下的点的最小生成树的值(联想到次小生成树)。 删边的过程可以用dfs枚举。 代码如下啊: #include<stdio.h> #include<math.h> #include<algorithm> ...
2018-10-18 09:45:17 374
原创 次小生成树模板
整体思路就是将没有用过的边插入最小生成树中,会形成一个环,我们去掉这个环中最大的那个边,会得到一个新的 生成树,次小生成树就是新的生成树中最小的那个。我们用一个数组maxx来记录最小生成树中两点之间最大的权值。 用connect数组表示边是否加入最小生成树中,代码如下: #include<stdio.h> #include<algorithm> using name...
2018-10-18 08:23:07 125
原创 HDU - 2489(枚举+最小生成树)
通过dfs枚举所有点集合的情况,然后对这些点进行prim求的最小生成树。 然后将边权和点权的比以及点集合存在到一个结构体数组里面,然后先对边权和点权的比进行排序, 如果相等的话就按点集合的字典序排序即可; 代码如下: #include<stdio.h> #include<string.h> #include<algorithm> #define mms...
2018-10-11 15:21:38 273
原创 字典树模板
#include<stdio.h> #include<string.h> const int INF = 40005; int tire[INF][26], sum[INF], tol = 1; void insert(char* data,int rt); void find(char* data); /* carbohydrate cart carburetor ca...
2018-10-09 13:46:57 126
原创 HDU - 1811 (并查集 + 拓扑排序)
读题可以知道当成环的时候会有冲突,当不止有一个拓扑排序的时候信息不完全。 当有相等的时候可以用并查集把他们当成一个节点来处理; 代码如下: #include<stdio.h> #include<string.h> #define mmset(a,b) memset(a,b,sizeof(a)) const int N = 100005; const int M = ...
2018-10-05 21:07:19 201
渗透神器明小子
2015-06-06
qt实现当单击树形控件是切换堆栈窗口
2017-10-30
关于多次为指针使用new和使用指针的问题
2017-10-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人