数据参考

百度经验

博客园 楠楠IT

测试接口 牛客 连通工程

问题背景

求国家建设公路的最小开销

算法思想

首先建立 邻接矩阵

然后 设定最小消耗顶点(就是两个定点之间的权重最小)顶点集合 U

每次从 矩阵中找出没有被访问过的点到已经在集合U中的点的距离的最小值,然后把这个顶点放入集合U中。

有任何问题请联系 1049188593@qq.com

#include <iostream>
#include <deque>
#include <fstream>
#include <vector>
using namespace std; #ifdef debug
ifstream ifile("case2.txt");
#define cin ifile
#endif #define Inf 10000000
int arc[101][101];// 连接矩阵
vector<bool> visited;// 标记是否访问过
int Prim(int vexnum, vector<int> &u)// 集合U
{
long long sumMoney = 0;
u.resize(1);
u[0] = 0; // 表示从 0 出发遍历整幅图
visited[0] = true;// 表示访问过
while (u.size() != vexnum)
{
int min = Inf;// 找出值最小的边
int nextAddPoint = -1;// 最小值所对应没有访问到的节点
for (int i = 0; i < u.size(); i++)
{
for (int j = 0; j < vexnum; j++)
{
if (!visited[j] && arc[u[i]][j] < min)
{
min = arc[u[i]][j];
nextAddPoint = j;
}
}
}
visited[nextAddPoint] = true;
u.push_back(nextAddPoint);
sumMoney += min;
}
return sumMoney;
}
int main()
{
int vexnum, edge, money;
cin >> money >> edge >> vexnum;
int x, y, value;
visited.resize(vexnum);
for (int i = 0; i < vexnum; i++)// 初始化邻接矩阵
{
for (int j = 0; j < vexnum; j++)
{
arc[i][j] = Inf;
}
visited[i] = false;// 所有的节点标记为没有访问过
}
for (int i = 0; i < edge; i++)// 邻接矩阵赋值
{
cin >> x >> y >> value;
x--; y--;
if (value > arc[x][y])
continue;
arc[x][y] = value;
arc[y][x] = arc[x][y];
} vector<int> u;
long long rlt = Prim(vexnum, u);
if (rlt > money)
{
cout << "No" <<endl;
}
else
{
cout << "Yes" <<endl;
} system("pause");
return 0;
}

Prim 算法求最小生成树的更多相关文章

  1. HDU-1233 还是畅通工程 (prim 算法求最小生成树)

    prim 算法求最小生成树 还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  2. Kruskal和Prim算法求最小生成树

    Kruskal算法求最小生成树 测试数据: 5 6 0 1 5 0 2 3 1 2 4 2 4 2 2 3 1 1 4 1 输出: 2 3 1 1 4 1 2 4 2 0 2 3 思路:在保证不产生回 ...

  3. 858. Prim算法求最小生成树(模板)

    给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数. 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible. 给定一张边带权的无向图G=(V, E),其中V表示 ...

  4. Prim算法求最小生成树

    首先在介绍这个算法之前我们要之明确一下什么是最小生成树的概念: 由 V 中的全部 n 个顶点和 E 中 n−1 条边构成的无向连通子图被称为 G 的一棵生成树,其中边的权值之和最小的生成树被称为无向图 ...

  5. 图的普里姆(Prim)算法求最小生成树

    关于图的最小生成树算法------普里姆算法 首先我们先初始化一张图: 设置两个数据结构来分别代表我们需要存储的数据: lowcost[i]:表示以i为终点的边的最小权值,当lowcost[i]=0说 ...

  6. AcWing 858. Prim算法求最小生成树 稀疏图

    //稀疏图 #include <cstring> #include <iostream> #include <algorithm> using namespace ...

  7. 图的建立(邻接矩阵)+深度优先遍历+广度优先遍历+Prim算法构造最小生成树(Java语言描述)

    主要参考资料:数据结构(C语言版)严蔚敏   ,http://blog.chinaunix.net/uid-25324849-id-2182922.html   代码测试通过. package 图的建 ...

  8. 利用Kruskal算法求最小生成树解决聪明的猴子问题 -- 数据结构

    题目:聪明的猴子 链接:https://ac.nowcoder.com/acm/problem/19964 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个 ...

  9. Prim算法和Kruskal算法求最小生成树

    Prim算法 连通分量是指图的一个子图,子图中任意两个顶点之间都是可达的.最小生成树是连通图的一个连通分量,且所有边的权值和最小. 最小生成树中,一个顶点最多与两个顶点邻接:若连通图有n个顶点,则最小 ...

  10. prime算法求最小生成树(畅通工程再续)

    连着做了四道畅通工程的题,其实都是一个套路,转化为可以求最小生成树的形式求最小生成树即可 这道题需要注意: 1:因为满足路的长度在10到1000之间才能建路,所以不满足条件的路径长度可以初始化为无穷 ...

随机推荐

  1. 🎀抓包工具安装-Charles

    简介 Charles 作为一个 HTTP 代理/HTTP 监视器/反向代理工具,允许开发者查看他们的计算机与互联网之间的所有 HTTP 和 HTTPS 通信.工作原理是基于 HTTP 代理的概念,它充 ...

  2. DNS滥用如何进行防范?

    在当今数字化浪潮汹涌的时代,域名系统宛如互联网的基石,稳稳承载着将人们日常使用的便捷域名,精准转换为计算机能够识别与处理的IP地址这一关键任务.其重要性不言而喻,然而,随着DNS在全球范围内的广泛普及 ...

  3. Spark on K8s 在vivo大数据平台的混部实战

    作者:vivo 互联网大数据团队- Qin Yehai 在离线混部可以提高整体的资源利用率,不过离线Spark任务部署到混部容器集群需要做一定的改造,本文将从在离线混部中的离线任务的角度,讲述离线任务 ...

  4. 倍增 & Tarjan 求解LCA

    什么是LCA? 假设我们有一棵树: 1 / \ 2 3 / \ / 4 5 6 对于 \(2\) 和 \(6\) 的LCA,就是最近公共祖先,即为距离 \(2\) 和 \(6\) 最近的两个节点公有的 ...

  5. Linux系列:如何用perf跟踪.NET程序的mmap泄露

    一:背景 1. 讲故事 如何跟踪.NET程序的mmap泄露,这个问题困扰了我差不多一年的时间,即使在官方的github库中也找不到切实可行的方案,更多海外大佬只是推荐valgrind这款工具,但这款工 ...

  6. Font Awesome文档使用手册

    Font Awesome 字体为您提供可缩放矢量图标,它可以被定制大小.颜色.阴影以及任何可以用CSS的样式. 使用文档:https://fa4.uihtm.com/ Font Awesome 是一套 ...

  7. 智表ZCELL产品V2.0发版小感

    不知不觉,智表从诞生以来已经两年多了,首先感谢各位用户的支持,没有大家的支持,智表这个产品估计早就已经终止了,正是大家的支持和鼓励,智表才一步一步走到了今天.智表最初是从一个简单不能再简单的table ...

  8. Ubuntu下好用的工具

    UML画图工具 推荐:Drawio 参考:https://blog.csdn.net/jsm1010/article/details/112920539 安装命令:sudo snap install ...

  9. docker容器安装TensorFlow_gpu 版本遇到的坑。。。

    运行并挂载docker镜像 docker run -it -v E:/workspace/docker:/dl -p 8888:8888 8d78dd1e1b64 /bin/bash 安装jupyte ...

  10. React-Native开发鸿蒙NEXT-从global变量聊聊代码的内部优化

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...