首页 > 其他分享 >KY148 还是畅通工程c

KY148 还是畅通工程c

时间:2024-03-03 17:22:25浏览次数:24  
标签:KY148 set 工程 int void edge 畅通 include e1

这题好像更新了呀,不压缩路径的话,find函数用递归的话会栈溢出。

#include <stdio.h>
#include<stdbool.h>
#include<stdlib.h>
int set[101];

typedef struct node{
    int length;
    int e1;
    int e2;
}edge;

void init_set(int* set){
    for(int i=0;i<101;i++){
        set[i]=i;
    }
}

int get_father(int set[], int i){
    if(set[i] != i)
        set[i] = get_father(set, set[i]);
    return set[i];
}


bool judge_same(int set[],edge i){
    int x=get_father(set, i.e1);
    int y=get_father(set,i.e2);    
    if(x==y) return true;
    return false;
}

void merge_set(int set[],edge i){
    int x=get_father(set, i.e1);
    int y=get_father(set,i.e2);  
    if(x>y){
        set[x]=y;
    }else{
        set[y]=x;
    }
}

int cmp(const void* a,const void* b){
    edge* e1=(edge*)a;
    edge* e2=(edge*)b;
    return e1->length -e2->length;
}

int main() {
    int n;
    while(scanf("%d",&n)!=EOF){
        if(n==0) break;
        init_set(set);
        edge* e=(edge*)malloc(sizeof(edge)*(n*(n-1))/2);
        for(int i=0;i<(n*(n-1))/2;i++){
            scanf("%d %d %d\n",&e[i].e1,&e[i].e2,&e[i].length);
        }        
        qsort(e,(n*(n-1))/2,sizeof(e[0]),cmp);
        int sum=0;
        for(int i=0;i<(n*(n-1))/2;i++){
            if(!judge_same(set, e[i])){
                sum+=e[i].length;
                merge_set(set, e[i]);
            }
        } 
        printf("%d\n",sum);
    }

    return 0;
}

结果:

标签:KY148,set,工程,int,void,edge,畅通,include,e1
From: https://www.cnblogs.com/llllmz/p/18050325

相关文章

  • 使用STM32CubeMX创建工程
    1,选择芯片新建工程 2.时钟模块的设置分别设置HSE,LSE,MCO 3.时钟系统配置分别配置PLL,SYSCLK,AHB,APB1,APB2等等,配置修改如下红色标记部分 4.Cortex内核配置分别配置SYS(DEBUG),NVIC(优先级分组) 5.GPIO引脚配置我的板子的原理图的PB5引脚是LED0  6.修改工程配......
  • 算法工程师面试常考手撕题
    手撕numpy写线性回归的随机梯度下降(stochasticgradientdescent,SGD)  在每次更新时用1个样本,可以看到多了随机两个字,随机也就是说我们用样本中的一个例子来近似我所有的样本,来调整θ,因而随机梯度下降是会带来一定的问题,因为计算得到的并不是准确的一个梯度,对于最优化问题,凸问......
  • GNS3打开工程报错 --Dynamips error xxx:unable to create UDP NIO 解决方法
    GNS3打开工程报错--Dynamipserrorwhenrunningcommandxxx:unabletocreateUDPNIO报错原因:GNS3(v2.2)serverUDP连接端口号使用了10000-20000,NvidiaGeForceExperience也使用了相同的UDP端口号,发生冲突。解决方法:方法一:卸载NvidiaGeForceExperience,此过程不会......
  • 智慧治水丨计讯物联水利RTU助推小型水库出险加固工程建设与管理
    日前,水利部印发《关于健全小型水库除险加固和运行管护机制的意见》(以下简称《意见》),健全小型水库除险加固和运行管护常态化机制,提高小型水库安全管理水平。《意见》提出了“十四五”的两大管理机制,通过加快监测设施建设与全管理信息融合共享机制健全小型水库除险加固和运行管护。......
  • SOLIDWORKS参数化设计之工程图更新 慧德敏学
    SOLIDWORKS参数化设计不仅仅包括三维模型的参数化设计,还包括工程图的自动更新,由于自动出图仍然存在一定的局限性,不能完美的实现视图的布局及尺寸的标注,因此,现阶段采用的最多的仍然是图纸的更新,也就是利用SOLIDWORKS本身三维与二维模型的关联性,当三维模型尺寸变化之后,二维图纸随着......
  • Pycharm:在工程目录下新建一个Python.exe
    1、起因公司电脑上把Python安装在了系统盘,但是我没有系统盘的修改权限,导致用pip时无法把包安装到系统盘2、解决方案在工程目录下,为工程新建一个Python.exe,之后该工程都采用这个python和它的pip,把包安装在工程包下。1)File→Settings→Project:xxx→PythonInterpreter2)Python......
  • 岩土工程中的振弦采集仪技术发展与前景展望
    岩土工程中的振弦采集仪技术发展与前景展望河北稳控科技振弦采集仪是一种常用的岩土工程监测仪器,用于测量土壤或岩石的振动特性。随着岩土工程领域的发展和技术的进步,振弦采集仪技术也得到了不断的发展和改进。以下是对振弦采集仪技术发展与前景的展望: 1.技术改进:随着传感器......
  • 四川农业大学农业信息工程/电子信息866专业课初试资料
    讲在前面:我们是川农计算机考研上岸直系川农学长学姐。并非机构!想为大家提供川农计算机考研一手资料,资料在收集和整理过程中大家付出了许多精力和心血,因此需要收取一点费用,还望见谅(❁´◡`❁)如果关于资料有什么不满意的部分可向客服同学申诉,我们会虚心听取大家的建议和意见并作......
  • GenAI助力DevOps,塑造软件工程的未来
    自2022年以来,GenAI无疑已成为一种普遍的技术趋势。在本文中,我们将探索DevOps中令人兴奋的GenAI领域,讨论其潜在优势、局限性、新兴趋势和最佳实践,深入了解AI支持的DevOps前沿世界,并探索这一强大组合如何重塑软件工程的未来。 DevOps中的GenAI介绍随着ChatGPT、B......
  • 系统工程方法
    统工程方法是一种跨学科的方法论,它不仅仅局限于某一特定的领域,而是能够灵活地应用于解决现代社会中的各种复杂问题。这种方法的核心理念在于强调整体性,要求我们全面地考虑问题,而不仅仅是孤立地分析其中的某个部分。相互关联性则是要求我们认识到系统中的各个组成部分是相互影响、......