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

编程练习7 5G网络建设

需要用到并查集的相关知识:可以参考如下链接

并查集详解(原理+代码实现+应用+优化)-CSDN博客

#include<iostream>
#include<algorithm>
#include<vector>using namespace std;vector<int> split(string params_str) {vector<int> p;while (params_str.find(" ") != string::npos) {int found = params_str.find(" ");p.push_back(stoi(params_str.substr(0, found)));params_str = params_str.substr(found + 1);}    p.push_back(stoi(params_str));return p;
}vector<string> split_str(string params_str) {vector<string> p;while (params_str.find(" ") != string::npos) {int found = params_str.find(" ");p.push_back(params_str.substr(0, found));params_str = params_str.substr(found + 1);}    p.push_back(params_str);return p;
}  // 并查集实现
class UnionFind{vector<int> root;vector<int> rank;int cnt;public:
// 初始化数据结构UnionFind(int N) : cnt(0){root.resize(N+1);rank.reserve(N+1);for (int i = 0; i < N+1; ++i) {root[i] = i;rank[i] = 1;}}int find(int x) {if (x == root[x]) {return x;}return root[x] = find(root[x]);}void union_op(int x, int y) {root[find(x)] = find(y);cnt+=1;}int get_count(){return cnt;}
};int main()
{int n,m;cin >> n >> m;UnionFind uf(n);vector<vector<int>> networks;for (int i = 0; i < m; i++) {int a,b,c,d;cin >> a >> b >> c >> d;if (d == 1) {if (uf.find(a) != uf.find(b)) {uf.union_op(a, b);}} else {networks.push_back(vector<int>{a,b,c});}}sort(networks.begin(), networks.end(),[](vector<int> a ,vector<int> b){return a[2]<b[2];});int result = 0;int i=0;while(true){if(i>=networks.size()){break;} else {if (uf.find(networks[i][0]) != uf.find(networks[i][1])) {uf.union_op(networks[i][0], networks[i][1]);result += networks[i][2];if (uf.get_count() == n - 1) {break;}}}i+=1;}if(uf.get_count() != n - 1){result = -1; }cout<<result<<endl;return 0;
}


http://www.mrgr.cn/news/50849.html

相关文章:

  • 初识Linux
  • DB-GPT 安装
  • 基于Leaflet的高德AOI数据在天地图底图可视化纠偏实践
  • 视觉的边界填充、数值计算和腐蚀操作
  • jeston nano配置虚拟环境记录
  • 每日OJ题_WY3小易的升级之路_数学模拟_C++_Java
  • 离宝安羊台山登山口最近的停车场探寻
  • 港大和字节提出长视频生成模型Loong,可生成具有一致外观、大运动动态和自然场景过渡的分钟级长视频。
  • 百度地图怎么上传店铺定位?
  • RK3568平台开发系列讲解(调试篇)嵌入式必备技能:万用表使用指南
  • 99. UE5 GAS RPG 被动技能实现
  • 警惕勒索病毒的最新变种bixi,您需要知道的预防和恢复方法。
  • Java_EE(反射技术)
  • 标准IO:fread/fwrite
  • java真的正在越来越失去竞争力了吗
  • 前端入门学习之css盒子原则
  • 基于Verilog的汉明码编码器/解码器设计
  • 优选算法第一讲:双指针模块
  • 如何使用vllm在服务器上部署模型并调用
  • 高可用之限流-07-token bucket 令牌桶算法