当前位置: 首页 > 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;
}

相关文章:

  • 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网关智能工厂解决方案!
  • 全中国最好的十个博物馆展陈选出来了!
  • 广西隆林突发山洪,致3人遇难1人失联
  • 泉州围头湾一港区项目炸礁被指影响中华白海豚,官方:已叫停重新评估
  • 梅花奖在上海|舞剧《朱鹮》,剧里剧外都是生命的赞歌
  • 中国人民银行等四部门联合召开科技金融工作交流推进会
  • 腾讯一季度净利增14%:AI直接拉动广告收入增长,王者荣耀流水创新高