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

【模板】最小生成树

题目来自洛谷网站:

思路:

kruskal模板题。

代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2e5+20;

int n, m;
//要根据w排序决定最小还是最大树
struct edge{
    int u, v, w;
    bool operator<(const edge &t) const {return w < t.w ;}
}e[N];
int fa[N];//并查集 存树中该点的父节点
//存最后答案
int ans;
//判断无向图能不能生成最小树
int cnt;

int find(int x){
    if(fa[x] == x) return x;
    return fa[x]=find(fa[x]);
}

bool kruskal(){
    //先排序 题目要求最小生成树
    sort(e, e+m);
    for(int i = 0; i < m; i++){
        int x = e[i].u, y = e[i].v;
        int a = find(x), b = find(y);
        if(a == b) continue;
        fa[a] = b;
        ans += e[i].w;
        cnt ++;
    }
    return cnt == n-1;
}

signed main(){
    cin >> n >> m;
    //初始化
    for(int i = 0; i<=n; i++) fa[i] = i;
    //数据读入到tree中
    for(int i = 0; i<m; i++){
        cin >> e[i].u >> e[i].v >> e[i].w;
    }
    bool check = kruskal();
    if(check) cout << ans << endl;
    else cout << "orz" << endl;
    return 0;
}

http://www.dtcms.com/a/96672.html

相关文章:

  • docker-Dify外接Fastgpt知识库
  • img 的 onerror属性
  • 实战打靶集锦-33-Bottleneck
  • CD19.【C++ Dev】类和对象(10) 日期类对象的成员函数(日期+天数)
  • django orm的优缺点
  • 数据结构与算法——顺序表的实现以及增、插、删、查、印、毁
  • MySQL-- 多表查询的分类,SQL92与SQL99,7种JOIN的实现,SQL99语法的新特性
  • Postman 全局 Header 如何设置?全局设置了解一下
  • 接口用例设计原则
  • 旋转变换原理
  • 养老更安心!智绅科技“智慧”养老系统,智在何处?
  • A SAM-guided Two-stream Lightweight Model for AnomalyDetection
  • springBoot统一响应类型3.3版本
  • 4、网工软考—VLAN配置—hybird配置
  • 以科技赋能,炫我云渲染受邀参加中关村文化科技融合影视精品创作研讨会!
  • 《白帽子讲 Web 安全》之跨站请求伪造
  • 剑指Offer44 -- 思维
  • Java Synchronized底层原理:Monitor机制、锁膨胀、自旋优化与偏向锁细节解密
  • vcpkg安装指定版本的库
  • 重磅推出稳联技术Profinet转CANopen网关智能工厂解决方案!
  • 磷酸铁锂电池自动分选机:新能源产业的智能新宠
  • 深入理解机器学习之TF-IDF:文本特征提取的核心技术
  • STM32 时钟树配置(debug)
  • Citus源码(1)分布式表行为测试
  • 自动化测试与 CAPTCHA 识别指南
  • notepad++ 正则表达式
  • Python第六章16:字典(dict)的常用操作
  • 如何为 Debian 和 Kali 系统更换软件源并更新系统
  • transform 3d学习简单示例
  • Mysql-DML