PTA 最小生成树-kruskal

7-92 最小生成树-kruskal
分数 10

全屏浏览题目
作者 任唯
单位 河北农业大学
题目给出一个无向连通图,要求求出其最小生成树的权值。

温馨提示:本题请使用kruskal最小生成树算法。

输入格式:


 

输出格式:


输出一个整数表示最小生成树的各边的长度之和。

输入样例:
4 5
1 2 2
1 3 2
1 4 3
2 3 4
3 4 3
输出样例:
7
代码长度限制
16 KB
时间限制
500 ms
内存限制
64 MB

代码分享及思路分享:


#include <iostream>
#include<bits/stdc++.h>
#include <algorithm>
using namespace std;
struct edge{int u,v;int value;
}s[1000001];
int f[1000001];//用f数组的下标和对应存储的值来判断是否已经连通
int find(int x){if(x!=f[x])  return f[x]=find(f[x]);return f[x];
}//调用递归
bool cmp(edge a,edge b){return a.value<b.value;
}//以边从小到大排序
int main(){int n,m;cin>>n>>m;for(int i=1;i<=m;i++){scanf("%d%d%d", &s[i].u, &s[i].v, &s[i].value);//这里要用scanf如果用cin会报运行超时}//数据的输入int num=0,sum=0;sort(s+1,s+m+1,cmp);//对边进行排序for(int i=1;i<=n;i++){f[i]=i;}for(int i=0;i<=m;i++){int fu=find(s[i].u);int fv=find(s[i].v);if(fu!=fv){f[fu]=fv;sum+=s[i].value;num++;if(num==n-1)//边数为顶点数-1,所有最小边都已经找到就可以退出了break;}}cout<<sum;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556241.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

06 - java 方法

Java 方法 一个方法可以重复使用很多次&#xff0c;减少不必要的冗余&#xff0c;以及重复很多次不必要的操作让整个程序看起来模块化 public static void main (String[] args) {Scanner sc new Scanner(System.in);int num sc.nextInt();switch (num) {case 1: int[] arr…

Spring系列:父子容器详解

又一次被面试官带到坑里面了。 面试官&#xff1a;springmvc用过么&#xff1f; 我&#xff1a;用过啊&#xff0c;经常用呢 面试官&#xff1a;springmvc中为什么需要用父子容器&#xff1f; 我&#xff1a;嗯。。。没听明白你说的什么。 面试官&#xff1a;就是controll…

05 - 基本排序

01-冒泡排序 public static int[] bubbleSort(int[] arr) {for (int i 0; i < arr.length - 1; i) {for (int j 0; j < arr.length - i; j) {if (arr[i] > arr[i 1]) {// 两两交换int temp arr[i];arr[i] arr[i 1];arr[i 1] temp;}}}return arr; }02-选择排序…

java实现单链表

链表是java数据结构中一种很基础很常见却也很重要的数据结构&#xff0c;JDK中许多内置jar包基于单链表实现&#xff0c;比如像我们熟悉的linkedList等&#xff0c;为什么要使用链表呢&#xff1f; 我们知道java中很多集合的底层是基于数组实现的&#xff0c;数组有一个很重要…

sql 两表数据合并_多表查询SQL语句

本篇文章中主要讲述以下内容&#xff1a;一、表的加法合并两张表的过程&#xff1a;然后运用sql语句&#xff1a;select 课程号,课程名称 from course union select 课程号,课程名称 from course1以上子句会把两个表中重复数据删除。要想不删除重复的行&#xff0c;则需要在上面…

04 - java 运算符

位移运算符 有符号左移 << int a 1 << 2; System.out.println(a); // 4 > 1 * 2 ^ 2无符号左移 <<< 右移 >> int a 1 >> 2; System.out.println(a); // 0 > 1 / 2 ^ 2cpu计算位移、与或非的速度非常快

angularjs增删改查数据_MongoDB数据读写操作(增删改查)总结

《大数据和人工智能交流》头条号向广大初学者新增C 、Java 、Python 、Scala、javascript 等目前流行的计算机、大数据编程语言&#xff0c;希望大家以后关注本头条号更多的内容。一、在执行mongo.exe文件后&#xff0c;进入MongoDB的shell 操作1、创建一个数据库use users2、查…

SpringAop与AspectJ的联系与区别____比较分析 Spring AOP 和 AspectJ 之间的差别

SpringAop与AspectJ的联系与区别 区别 AspectJ AspectJ是一个面向切面的框架&#xff0c;它扩展了Java语言。AspectJ定义了AOP语法&#xff0c;所以它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。 spring aop Spring提供了四种类型的Aop支持 * 基于经典的…

ssrf漏洞内网渗透_渗透小白看了也能明白的SSRF

什么是SSRF含义服务器端请求伪造&#xff08;SSRF&#xff09;是指攻击者能够从易受攻击的Web应用程序发送精心设计的请求的对其他网站进行攻击。(利用一个可发起网络请求的服务当作跳板来攻击其他服务)攻击者能够利用目标帮助攻击者访问其他想要攻击的目标攻击者要求服务器为他…

高并发之服务降级和服务熔断____服务降级、熔断、限流的区别

高并发之服务降级和服务熔断 服务降级&#xff1a; 服务压力剧增的时候根据当前的业务情况及流量对一些服务和页面有策略的降级&#xff0c;以此环节服务器的压力&#xff0c;以保证核心任务的进行。 同时保证部分甚至大部分任务客户能得到正确的相应。也就是当前的请求处理…

03 - 变量的数据类型

1. 数据类型 java的数据类型可以分为四类八种 整形 byte 8位 – 1字节 – 取值范围是 (-128~127) > 11111111~10000000 第一位称作符号位&#xff0c;以1开头的是负数&#xff0c;以0开头的是整数正数的源码、反码、补码都是本身 00011100负数的反码 – 除了符号位&#xf…

python操作word文档中的图片_Python操作word文档插入图片和表格的实例演示

前言P6Q免费资源网图片是Word的一种特殊内容&#xff0c;这篇文章主要介绍了关于Python操作word文档&#xff0c;向里面插入图片和表格的相关内容&#xff0c;下面话不多说了&#xff0c;来一起看看详细的代码P6Q免费资源网实例代码&#xff1a;P6Q免费资源网# -*- coding: UTF…

Controller数据导出Excel 详细教程——easypoi-base,easypoi-web,easypoi-annotation

Controller获取数据导出Excel&#xff0c;详细教程 1&#xff1a;导入对应依赖 <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.1.3</version></dependency><dependency&g…

02 - java 标识符命名规范

一、java总体命名规范 名称只能由字母、数字、下划线、$符号组成不能以数字开头名称不能使用java中的关键字坚决不允许出现中文 具体还要查看《阿里巴巴java开发手册》

python求均方根_python之MSE、MAE、RMSE的使用

我就废话不多说啦&#xff0c;直接上代码吧&#xff01;target [1.5, 2.1, 3.3, -4.7, -2.3, 0.75]prediction [0.5, 1.5, 2.1, -2.2, 0.1, -0.5]error []for i in range(len(target)):error.append(target[i] - prediction[i])print("Errors: ", error)print(err…

01 - java 开始

Java 的优势 java适合做web后台 java配置环境的时候 java的安装目录&#xff1a;JAVA_HOMEjdk的安装目录&#xff1a;%JAVA_HOME%\bin java的执行机制 先将.java的文件用 javac 编译成 .class的字节码文件再将这些 .class 的字节码文件用 java 执行&#xff08;执行的是文…

python中__init__方法_关于python中__init__方法理解

在理解__init__方法之前,我们需要搞明白,什么时候才需要用到的这个方法什么是__init__&#xff1f;__init__方法在python中是类的初始化&#xff0c;通俗来讲&#xff0c;就是每次只要你去创建一个类的实例对象的时候&#xff0c;这个对象就会有初始化相关的属性什么时候需要去…

15 - java 继承

java继承 This > Son Super > Father Object 类是所有类的顶级父类 只要创建一个类默认都会继承这个顶级父类 – Object 在子类继承父类里面 构造器必须先构造一个父类&#xff08;先有爸爸&#xff0c;才有儿子&#xff09;&#xff0c;必须首先构造父类&#xff0…

easyPOI基本用法详解

文章目录easyPOI基本用法1.Excel文件的简单导入和导出1.1准备工作1.2导入1.3导出1.4图片的导出1.5图片的导入1.6excel模板导出文件1.7excel转html2.Word文件导出2.1使用word模板导出2.2使用word模板导出多页3.excel导入时验证3.1环境准备3.2实战演练3.3注意事项easyPOI基本用法…

16 - java 类加载顺序

类的加载顺序 类对象、静态变量是存在元空间的方法区&#xff0c;实例对象是new出来的&#xff0c;放在堆里面的 一个类加载到内存的完整过程 加载父类 --> 加载子类 --> 构造父类 --> 构造子类 class文件要从磁盘加载到内存形成对象 内存靠地址去取寻址 – 随机存…