1-1

分数 5

作者 陈越

单位 浙江大学

Kruskal 算法是维护一个森林,每一步把两棵树合并成一棵。

T


1-2

分数 5

作者 陈越

单位 浙江大学

Prim 算法是通过每步添加一条边及其相连的顶点到一棵树,从而逐步生成最小生成树。

T


1-3

分数 5

作者 陈越

单位 浙江大学

对于带权无向图 G = (V, E),M 是 G 的最小生成树,则 M 中任意两点 V1 到 V2 的路径一定是它们之间的最短路径。

F


1-4

分数 5

作者 魏宝刚

单位 浙江大学

如果 e 是有权无向图 G 唯一的一条最短边,那么边 e 一定会在该图的最小生成树上。

T


分数 5

作者 DS课程组

单位 浙江大学

任何一个带权无向连通图的最小生成树——

A.是唯一的

B.是不唯一的

C.有可能不唯一

D.有可能不存在

连通图一定存在但不一定唯一


2-2

分数 5

作者 陈越

单位 浙江大学

给定有权无向图的邻接矩阵如下,其最小生成树的总权重是:

A.24

B.23

C.18

D.17


2-3

分数 5

作者 陈越

单位 浙江大学

给定有权无向图如下。关于其最小生成树,下列哪句是对的?

A.边(B, A)一定在树中,树的总权重为23

B.边(D, C)一定在树中,树的总权重为20

C.最小生成树不唯一,其总权重为23

D.最小生成树唯一,其总权重为20

1+2+3+3+1+4+9

如果图中所有边的权值都不同,只有一种最小生成树
但是如果有2条或以上的边有相同权值,这个最小生成树就不一定唯一了
不过即使不唯一,这个最小的权值和一定唯一的


2-4

分数 5

作者 魏宝刚

单位 浙江大学

给出如下图所示的具有 7 个结点的网 G,采用Prim算法,从4号结点开始,给出该网的最小生成树。下列哪个选项给出了正确的树结点收集顺序?

A.4501362

B.4526301

C.4561023

D.4563201


2-5

分数 5

作者 考研真题

单位 浙江大学

已知无向图 G 如下所示,使用克鲁斯卡尔(Kruskal)算法求图 G 的最小生成树,加入到最小生成树中的边依次是:

A.(b,f), (b,d), (a,e), (c,e), (b,e)

B.(b,f), (b,d), (b,e), (a,e), (c,e)

C.(a,e), (b,e), (c,e), (b,d), (b,f)

D.(a,e), (c,e), (b,e), (b,f), (b,d)


7-1 公路村村通

作者 陈越

单位 浙江大学

现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。

输入格式:

输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。

输出格式:

输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出−1,表示需要建设更多公路。

输入样例:

6 15
1 2 5
1 3 3
1 4 7
1 5 4
1 6 2
2 3 4
2 4 6
2 5 2
2 6 6
3 4 6
3 5 1
3 6 1
4 5 10
4 6 8
5 6 3

输出样例:

12
#include <bits/stdc++.h>
using namespace std;struct Node
{int a, b, c;
} road[3005];int Pre[1001];int Find(int x)
{if (Pre[x] == x)return x;elsereturn Find(Pre[x]);
}void Union(int a, int b)
{int x, y;x = Find(a);y = Find(b);if (x != y)Pre[y] = x;
}int cmp(struct Node x, struct Node y)
{return x.c < y.c;
}int main()
{int n, m, pr = 0, t = 0;scanf ("%d %d", &n, &m);for (int i = 1; i <= n; i++)Pre[i] = i;for (int i = 1; i <= m; i++)scanf ("%d %d %d", &road[i].a, &road[i].b, &road[i].c);sort(road + 1, road + m + 1, cmp);for (int i = 1; i <= m && t <= n - 1; i++){if (Find(road[i].a) != Find(road[i].b)){Union(road[i].a, road[i].b);pr = pr + road[i].c;t++;}}if (t < n - 1)printf ("-1");elseprintf ("%d", pr);return 0;}

7-2 畅通工程之局部最小花费问题

作者 DS课程组

单位 浙江大学

某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全地区畅通需要的最低成本。

输入格式:

输入的第一行给出村庄数目N (1≤N≤100);随后的N(N−1)/2行对应村庄间道路的成本及修建状态:每行给出4个正整数,分别是两个村庄的编号(从1编号到N),此两村庄间道路的成本,以及修建状态 — 1表示已建,0表示未建。

输出格式:

输出全省畅通需要的最低成本。

输入样例:

4
1 2 1 1
1 3 4 0
1 4 1 1
2 3 3 0
2 4 2 1
3 4 5 0

输出样例:

3
#include <bits/stdc++.h>
using namespace std;struct Node
{int a, b, c, d;
} v[5000];int Pre[101];int Find(int x)
{if (Pre[x] == x)return x;elsereturn Find(Pre[x]);
}void Union(int a, int b)
{int x, y;x = Find(a);y = Find(b);if (x != y)Pre[y] = x;
}int cmp(struct Node x, struct Node y)
{return x.c < y.c;
}int main()
{int n, pr = 0;scanf ("%d", &n);for (int i = 1; i <= n; i++)Pre[i] = i;for (int i = 1; i <= n * (n - 1) / 2; i++){scanf ("%d %d %d %d", &v[i].a, &v[i].b, &v[i].c, &v[i].d);if (v[i].d == 1)Union(v[i].a, v[i].b);}sort(v + 1, v + n * (n - 1) / 2 + 1, cmp);//sort(v + 1, v + n + 1, cmp);//for (int i = 1; i <= n; i++)for (int i = 1; i <= n * (n - 1) / 2; i++){if (v[i].d == 0)if (Find(v[i].a) != Find(v[i].b)){Union(v[i].a, v[i].b);pr = pr + v[i].c;}}cout << pr;return 0;}

DS_SpanningTree相关推荐

最新文章

  1. 6.分布式数据库HBase第2部分
  2. html下拉框只读,HTML元素(如select下拉框)设置为只读
  3. 剑指offer之判断二叉树是不是平衡二叉树
  4. display:table-cell自适应布局下连续单词字符换行
  5. 【分布式】Zookeeper在大型分布式系统中的应用
  6. 深入理解Hadoop之HDFS架构
  7. 四维的王坚和三维的阿里互联网汽车
  8. sql server 本地复制订阅 实现数据库服务器 读写分离
  9. 【优化算法】混沌博弈优化算法(CGO)【含Matlab源码 1803期】
  10. 数据结构——顺序表 SqList *L 和 SqList * L的区别
  11. echarts地图展示
  12. 文件右键点击打开方式后没有始终使用此应用打开该文件的勾选框
  13. 三轴加速度传感器的类型、原理、特点和应用
  14. 养猫日记之如何获得一只喵
  15. 公众号运营情况分析 DAY02(获取公众号文章阅读量、在看和评论内容)
  16. 计算机期末考试ppt操作,计算机期末考试重点PPT.ppt
  17. PMQ - 推送项目上线一年后的总结和复盘
  18. 【修真院java小课堂】clean,install,package,deploy分别代表什么含义?
  19. GaussDB架构(上)
  20. matlab中的motion,matlab-ego-motion 基于 实现的自身运动估计仿真程序。通过对视频图 分析,快速 摄像机 的 263万源代码下载- www.pudn.com...

热门文章

  1. 《墨菲定律(Murphy‘s Law)》(Yanlz+Unity+SteamVR+云技术+5G+AI=VR云游戏=黄金法则+生存智慧+马太效应+口红效应+羊群效应+二八法则+人工智能+立钻哥哥+==)
  2. 大厂架构师之路8. 创业 - 做销售
  3. Shell脚本基本语法大全
  4. 树莓派python编程入门与实战解压密码_树莓派Python编程入门与实战
  5. 日志20140704~1226
  6. DNF台服每天0点刷新角色创建限制数据库代码
  7. AppleScript(3) : 获取AppleScript能找到的应用名称
  8. 【Win11尝鲜】Win 11设置任务栏图标靠左或居中显示
  9. Affine geometry
  10. Python实现随机生成车牌号