数据结构-最小生成树
leoxry
天道酬勤,拼搏一个最好的自己送给未来的自己,每天开开心心敲代码就是一种幸福,不计得失,回归刚开始学习时内心的单纯
展开
-
数据结构实验之图论六:村村通公路——最小生成树Kruskal算法
Think: 1知识点:最小生成树Kruskal算法(并查集思想) 2反思:注意变量初始化SDUT题目链接以下为Accepted代码#include <bits/stdc++.h>using namespace std;struct node { int u; int v; int w;}e[1004];int n, f[1004];void Init();int g原创 2017-07-14 09:49:46 · 1370 阅读 · 0 评论 -
【最小生成树】Battle Over Cities - Hard Version (35)
Think: 1知识点:最小生成树 2题意: (1):输入含有n(n<=500)个结点的连通图,询问最重要的点,最重要点的定义为删掉这个点及其所连的边,需要最多花费修复已经不再使用的边使得剩下的结点继续保持连通 (2):最重要的点可能有多个 3思路: (1):记录所有边的信息,初始存在的边可置连接权值为0,遍历每一个点(假设删除当前遍历点及其所连的边,然后将其他n-1个点通过最小生成树算原创 2017-11-29 15:17:58 · 896 阅读 · 0 评论 -
A - Jungle Roads——最小生成树
Think: 1知识点:最小生成树 2题意分析:n个村庄选择可以将n个村庄连通的n-1条路进行维护,询问最小维护费用,即n个结点选择n-1条边建立最小生成树 3反思:Prim()算法注意结点记录变量初始化应为1,以及地图信息记录数组初始化应为inf(0x3f3f3f3f)——当前题目 4思考:Kruskal算法适用于稀疏图时间复杂度m+nlg(n),未堆优化的Prim算法适用于稠密图时间复杂原创 2017-07-25 09:20:32 · 407 阅读 · 0 评论 -
F - Truck History——最小生成树_Prim算法
Think: 1知识点:最小生成树_Prim算法 2思考:字符串组最优生成 3题意分析:为使得1/Σ(to,td)d(to,td)最大,分子部分为1的状态使得分母最小即可,即生成所有“卡车种类”的最短距离和最小 4相同类型题目博客分享:博客: B - 英语考试 FZU - 2254——最小生成树 vjudge题目链接以下为Accepted代码#include <cstdio>#includ原创 2017-07-26 09:31:29 · 398 阅读 · 0 评论 -
E - QS Network——最小生成树_Prim算法
Think: 1知识点:最小生成树_Prim算法 2题意分析:n个结点,连接后信息可传递,边权等于两个结点的“适配器费用”加上“电缆费用”,询问最少花费;由连接后信息可传递可得到连接后的图应为连通图,进而考虑选择n-1条边连接n个结点即可vjudge题目链接以下为Accepted代码—50ms#include <cstdio>#include <cstring>#include <algor原创 2017-07-26 08:42:48 · 430 阅读 · 0 评论 -
N - 畅通工程再续——最小生成树Prim算法+double精度
Think: 1知识点:最小生成树Prim算法+double精度 2反思: 1>题意判断条件需要明确清晰 2>注意编程细节,变量类型赋值要准确vjudge题目链接以下为Accetped代码#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const int原创 2017-08-02 20:01:31 · 380 阅读 · 0 评论 -
C - Building a Space Station——最小生成树_Prim算法
Think: 1知识点:最小生成树_Prim算法+浮点数坐标建图 2题意分析:给定n个点的空间坐标和半径,将n个点直接或间接连通,连通可认为: 1>两个坐标(作为球理解)重合或覆盖 2>建立通道将两个坐标(作为球理解)连接,通道长度计算应为表面到表面的直线长度 3优化思路:题目中自己使用浮点数建图,后续优化可考虑使用实数建图,初始坐标输入的时候将浮点数转化为实数(本题目乘以1000即可),原创 2017-07-25 11:01:58 · 560 阅读 · 0 评论 -
J - Borg Maze——bfs+最小生成树_Prim算法
Think: 1知识点:bfs+最小生成树_Prim算法 2题意:最短路径和连接所有’A’和’S’结点 3方法:对于每一个’A’和’S’结点通过bfs算法求出其与其它’A’和’S’结点的最短路径,建图,进而通过最小生成树_Prim算法连接这tp个结点,使其构成连通图vjudge题目链接以下为Accepted代码——63ms#include <cstdio>#include <cstring>原创 2017-08-02 15:26:55 · 523 阅读 · 0 评论 -
B - Networking——最小生成树_Prim算法(未堆优化)
Think: 1知识点:最小生成树_Prim算法(未堆优化) 2题目思考:稠密图,Prim算法(未堆优化) 3反思:memset()初始化注意第三个参数应为sizeof(初始化数组) 4题意分析: 1>n个点,选择最优方案连成一个网络,注:初始给定边无限 2>即选择n-1条边将n个结点连通 3>边无限即稠密图,进而选择最小生成树Prim算法(未堆优化)vjudge题目链接以下为Acce原创 2017-07-25 09:58:45 · 377 阅读 · 0 评论 -
I - Agri-Net——最小生成树Prim算法
Think: 1知识点:最小生成树Prim算法 2题意:输入权值矩阵,求最小花费使得n个结点构成连通图vjudge题目链接以下为Accepted代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int inf = 0x3f3f3f3f;int e[114][114], vis[原创 2017-08-02 10:38:41 · 342 阅读 · 0 评论 -
B - 英语考试 FZU - 2254——最小生成树
Think: 1知识点:并查集 2题意思考:将每一个单词视为一个结点,两点之间的权值即为联想背这两个单词的精力,这样背过n个单词即可认为将n个结点生成一棵树 3反思:初始化注意结点范围vjudge题目链接以下为Wrong Answer代码——初始化范围错误#include <cstdio>#include <cstring>#include <algorithm>using namespa原创 2017-07-24 21:38:24 · 549 阅读 · 0 评论 -
H - Highways——最小生成树Kruskal算法+Prim算法
Think: 1知识点:最小生成树Kruskal算法+Prim算法 2思考: 1>多组输入超时,单组输入AC——why??? 2>排序时结构体内重载小于号快于再单独写cmp判断函数 3题意:需要使得n个结点构成连通图,已知有m个结点已经连接,询问最小花费构成连通图还需要连接那些结点 4思路: 1>Kruskal算法:先预处理所有结点距离,预处理结点距离时将其入队,之后按照权值排序,然后原创 2017-08-02 10:09:39 · 549 阅读 · 0 评论 -
图结构练习——最小生成树
Think: 1知识点:最小生成树Kruskal算法 2反思:题意分析建议使用最小生成树Prim算法 3知识体系分析:Kruskal算法更适用于稀疏图,未加堆优化的Prim算法更适用于稠密图,堆优化的Prim算法更适用于稀疏图——啊哈!算法SDUT题目链接以下为Accepted代码#include <bits/stdc++.h>using namespace std;struct node {原创 2017-07-14 10:24:01 · 414 阅读 · 0 评论 -
【次小生成树】PAT (Top Level) 1016 Uniqueness of MST (35)
Think: 1知识点:次小生成树 2题意: (1):若最小生成树存在且唯一,第一行输出最小生成树权值和,第二行输出Yes (2):若最小生成树存在且不唯一,第一行输出最小生成树权值和,第二行输出No (3):若最小生成树不存在即图不连通,第一行输出”No MST”,第二行输出连通块数量PAT题集-题目链接以下为Accepted代码#include <cstdio>#include <c原创 2017-12-08 20:34:20 · 473 阅读 · 0 评论