当前位置: 首页 > news >正文

代码随想录算法【Day57】

53. 寻宝

Prim算法 是求解加权无向图最小生成树的经典算法。其基本思想是:从图中任意一个节点出发,逐步扩展生成树,每次选择连接树与非树的最小权边。直到所有节点都被加入生成树中,算法结束。

#include<iostream>
#include<vector>
#include <climits>
​
using namespace std;
int main() {
    int v, e;
    int x, y, k;
    cin >> v >> e;
    vector<vector<int>> grid(v + 1, vector<int>(v + 1, 10001));
    while (e--) {
        cin >> x >> y >> k;
        grid[x][y] = k;
        grid[y][x] = k;
    }
    vector<int> minDist(v + 1, 10001);
    vector<bool> isInTree(v + 1, false);
    for (int i = 1; i < v; i++) {
        int cur = -1;
        int minVal = INT_MAX;
        for (int j = 1; j <= v; j++) {
            if (!isInTree[j] &&  minDist[j] < minVal) {
                minVal = minDist[j];
                cur = j;
            }
        }
        isInTree[cur] = true;
        for (int j = 1; j <= v; j++) {
            if (!isInTree[j] && grid[cur][j] < minDist[j]) {
                minDist[j] = grid[cur][j];
            }
        }
    }
    int result = 0;
    for (int i = 2; i <= v; i++) {
        result += minDist[i];
    }
    cout << result << endl;
}
http://www.dtcms.com/a/41423.html

相关文章:

  • 深入浅出:插入排序算法完全解析
  • 事业编体检不合格有哪些?
  • 重新审视 ChatGPT 和 Elasticsearch:第 2 部分 - UI 保持不变
  • MotionLM技术路线与优势解析
  • 【Oracle专栏】sqlplus显示设置+脚本常用显示命令
  • Rust ~ Vec<u8>和[u8]
  • Redis源码剖析之GEO——Redis是如何高效检索地理位置的?
  • Nginx+PHP+MYSQL-Ubuntu在线安装
  • Qt开发⑨Qt的事件_事件处理_按键事件和鼠标事件
  • 如何查找APP漏洞并渗透测试 解决网站被黑客攻击
  • BufferedReader PrintWriter
  • ctfhub-web信息泄露通关攻略
  • LabVIEW图像识别抗干扰分析
  • STM32学习【4】ARM汇编(够用)
  • 【Java项目】基于Spring Boot的校园闲置物品交易网站
  • IP 地址分配和管理全解析
  • 3 年→ 资深开发速通计划 序言
  • 5.10 P-Tuning v2:多层级提示编码的微调革新
  • pycharm编写ai大模型api调用程序及常见错误
  • [MD] AG stable
  • Autosar_RTE基础概念整理
  • 阿里云 | 快速在网站上增加一个AI助手
  • 【Stable Diffusion】AnimatedDiff--AI动画 插件使用技巧分享;文生视频、图生视频、AI生成视频工具;
  • python文件如何打包成.exe文件
  • 《AI和人工智能和编程日报》
  • nio中ByteBuffer使用
  • 【C】堆的应用 -- 堆排序
  • Unity Shader 学习14:模版测试 与 深度测试
  • Linux文件操作原理
  • 机器学习:强化学习的epsilon贪心算法