算法训练营|图论第7天 prim算法 kruskal算法

server/2024/10/22 13:07:19/

题目:prim算法

题目链接:

53. 寻宝(第七期模拟笔试) (kamacoder.com)

代码:

#include<bits/stdc++.h>
#include<unordered_map>
#include<unordered_set>
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>minEdges(v + 1, 10001);vector<bool>Intree(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 (!Intree[j] && minEdges[j] < MinVal) {cur = j;MinVal = minEdges[j];}}Intree[cur] = true;for (int j = 1; j <= v; j++) {if (!Intree[j] && grid[cur][j] < minEdges[j]) {minEdges[j] = grid[cur][j];}}}int result = 0;for (int i = 2; i <= v; i++) {result += minEdges[i];}cout << result << endl;
}

题目:kruskal算法

题目链接:

53. 寻宝(第七期模拟笔试) (kamacoder.com)

代码:

#include<bits/stdc++.h>
#include<unordered_map>
#include<unordered_set>
using namespace std;struct Edge {int l, r, val;
};
int n = 10001;
vector<int>father(n, -1);
void init() {for (int i = 0; i < n; i++) {father[i] = i;}
}
int find(int u) {if (u == father[u]) return u;else {return father[u] = find(father[u]);}
}
void join(int u, int v) {u = find(u);v = find(v);if (u == v) return;father[v] = u;}
static bool cmp(const Edge& a, const Edge& b) {return a.val < b.val;
}int main() {int v, e;int x, y, k;cin >> v >> e;vector<Edge>edges;while (e--) {cin >> x >> y >> k;edges.push_back({ x,y,k });}sort(edges.begin(), edges.end(), cmp);vector<Edge>result;init();int result_val = 0;for (Edge edge : edges) {int x = find(edge.l);int y = find(edge.r);if (x != y) {result.push_back(edge);result_val += edge.val;join(x, y);}}cout << result_val << endl;
}


http://www.ppmy.cn/server/110289.html

相关文章

Redis的内存淘汰策略- allkeys-lru

allkeys-lru 策略简介 在 allkeys-lru 策略下&#xff0c;当 Redis 的内存使用达到设置的上限&#xff08;maxmemory&#xff09;时&#xff0c;它会根据 LRU 算法选择和删除那些最近最少使用的键。LRU 算法会记录每个键的最近访问时间&#xff0c;当内存不足时&#xff0c;Re…

MySQL——事务与存储过程(二)存储过程的创建(1)创建存储过程

在开发过程中&#xff0c;经常会遇到重复使用某一功能的情况&#xff0c;为此&#xff0c;MySQL 引人了存储过程。存储过程就是一条或多条 SQL语句的集合&#xff0c;当对数据库进行一系列复杂操作时&#xff0c;存储过程可以将这些复杂操作封装成一个代码块&#xff0c;以便重…

JavaWeb笔记整理11——Nginx反向代理Tomcat

Nginx反向代理Tomcat服务器的实现原理&#xff1a; Nginx 就像一个中间人&#xff0c;它站在你的客户端&#xff08;比如浏览器&#xff09;和后端服务器&#xff08;比如Tomcat&#xff09;之间。它的主要任务是接收来自客户端的请求&#xff0c;然后将这些请求转发给实际处理…

【GPT】Coze使用开放平台接口-【5】API 调用

我们在机器人里面引用工作流&#xff0c;当然也可以通过 API 直接调用工作流&#xff0c;coze 也提供了这一套的 API 接口。coze 的 API 接口肯定也不只是接入工作流&#xff0c;Bots&#xff0c;文件&#xff0c;知识库等&#xff0c;都有相关接口。这个文档我们也只专注在工作…

怎样通过bs4找出程序中 标签<div class=“List2“>的内容?

怎样通过bs4找出程序中 标签<div class"List2">的内容&#xff1f; 可以使用BeautifulSoup库&#xff08;bs4&#xff09;的find方法来找到程序中带有特定class属性的<div>标签&#xff0c;并通过.text属性获取其内容。 以下是一个示例代码&#xff1a;…

git把远程仓库的master分支合并到本地分支

假如现在我们要将远程 origin 的 master 分支合并到本地的 dev 分支&#xff0c;可以按照以下步骤进行操作&#xff1a; 切换到本地的 dev 分支&#xff1a; git checkout dev拉取远程 origin 的最新 master 分支&#xff1a; git fetch origin master将远程 origin 的 master …

javaEE

JavaEE 概述 Java EE 是在 Java SE 的基础上构建的&#xff0c;它提供Web 服务等&#xff0c;是企业级应用程序版本 能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序 web开发 概述 web开发是指从网页向后端程序发送请求&#xff0c;与后端进行交…

CSS-层叠上下文【看这一篇就够了!!!】

目录 z-index设置定位元素层叠顺序 z-index值相同时&#xff0c;写在后面的覆盖写在前面的 z-index值越大&#xff0c;越在上面显示 z-index值为负数 CSS中的层叠上下文 什么是“层叠上下文” 层叠上下文的创建 根层叠上下文 定位元素的传统层叠上下文 层叠顺序 当元…