hdu 1879 继续畅通工程

简介: 点击打开链接1879 /*1思路:最小生成树+kruskal2注意把已经建好的合并*/#include#include#include#includeusing namespace std;#define MAXN 110...

点击打开链接1879


/*
1思路:最小生成树+kruskal
2注意把已经建好的合并
*/
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
#define MAXN 110
#define INF 0XFFFFFFF

int n , m , ans;
int father[MAXN];
int rank[MAXN];
struct Edge{
    int x;
    int y;
    int value;
    int state;
}e[10000];

bool cmp(Edge e1 , Edge e2){
     return e1.value < e2.value;
}

void init_Set(){
     for(int i = 1 ; i <= n ; i++){
        father[i] = i;
        rank[i] = 1;
     }
}

int find_Set(int x){
    int tmp = x;
    while(father[tmp] != tmp)
        tmp = father[tmp];
    while(father[x] != tmp){
        int tmp_x = father[x];
        father[x] = tmp;
        x = tmp_x;
    }
    return tmp;
}

void union_Set(int x , int y){
     if(rank[x] >= rank[y]){
        rank[x] += rank[y];
        father[y] = x;
     }
     else{
        rank[y] += rank[x];
        father[x] = y;
     } 
}

void kruskal(){
     sort(e , e+m , cmp);
     ans = 0;
     for(int i = 1 ; i <= m ; i++){
        int root_x = find_Set(e[i].x);
        int root_y = find_Set(e[i].y);
        if(root_x != root_y){
          if(!e[i].state)
            ans += e[i].value;
          union_Set(root_x , root_y);
        }
     }
     printf("%d\n" , ans);
}

int main(){
    //freopen("input.txt" , "r" , stdin);
    while(scanf("%d" , &n) , n){
        m = n*(n-1)/2;
        init_Set();
        for(int i = 1; i <= m ; i++){
           scanf("%d%d%d%d" , &e[i].x , &e[i].y , &e[i].value , &e[i].state);
           if(e[i].state)
             union_Set(find_Set(e[i].x) , find_Set(e[i].y));
        }
        kruskal();
    }     
    return 0;
}


目录
相关文章
|
Java Maven
结合NBCIO-BOOT项目最新SpringToolSuite4安装配置
结合NBCIO-BOOT项目最新SpringToolSuite4安装配置
198 0
|
存储 网络协议 Java
网络通信的核心机制:Socket如何实现高效数据传输(上)
网络通信的核心机制:Socket如何实现高效数据传输
|
Kubernetes 容器 Perl
k8s查看日志命令—2023.02
k8s查看日志命令—2023.02
428 0
|
7月前
|
存储 人工智能 自然语言处理
RAG 调优指南:Spring AI Alibaba 模块化 RAG 原理与使用
通过遵循以上最佳实践,可以构建一个高效、可靠的 RAG 系统,为用户提供准确和专业的回答。这些实践涵盖了从文档处理到系统配置的各个方面,能够帮助开发者构建更好的 RAG 应用。
3457 113
|
存储 弹性计算 安全
阿里云第七代云服务器ECS性能、适用场景与价格参考
阿里云第七代云服务器ECS(Elastic Compute Service)作为阿里云最新一代的高性能计算产品,凭借其基于最新硬件架构和虚拟化技术的全面升级,在计算能力、存储性能、网络传输速度以及灵活性等多个方面实现了显著提升。这一代云服务器旨在为用户提供更为强大、稳定且可定制的云端基础设施服务,广泛适用于从基础的Web托管到复杂的高性能计算等多种应用场景。
|
7月前
|
虚拟化 iOS开发 MacOS
VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS 集成驱动版,新增 12 款 I219 网卡驱动
VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS 集成驱动版,新增 12 款 I219 网卡驱动
351 15
|
SQL 存储 分布式计算
深入MaxCompute,人力家借助Information Schema合理治理费用
本文将为大家带来MaxCompute与人力家客户案例深度解读。
1439 8
|
存储 缓存 安全
⚡OWASF 十大 API 安全问题盘点
本文介绍了OWASP 2023年关于API安全的Top 10问题,包括对象级别授权漏洞(BOLA)、认证漏洞、对象属性级别授权漏洞、不受限制的资源消耗、函数级别授权漏洞(BFLA)、不受限制地接触敏感业务流程、服务端请求伪造(SSRF)、安全配置错误、库存管理不当和不安全的API使用。每个问题都详细介绍了其安全弱点、影响和预防措施。
|
达摩院 Linux Docker
MindOpt APL 最新版本功能介绍,并且开放下载使用了!
MindOpt APL (MAPL) 是由阿里巴巴达摩院研发的国产建模语言,专长于电力SCUC等问题,提供向量化建模支持,可与Mindopt Studio平台集成。最新版2.4增加了向量化建模、Linux环境下通过pip安装支持以及改进了打印显示和错误提示。MAPL的向量化建模提高了效率,适合大规模问题。用户可通过云平台Docker打包或pip安装使用,支持多种求解器,包括MindOpt和开源求解器。