Out of Hay
时间:2019-09-12
本文章向大家介绍Out of Hay,主要包括Out of Hay使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目背景
奶牛爱干草
题目描述
Bessie 计划调查N (2 <= N <= 2,000)个农场的干草情况,它从1号农场出发。农场之间总共有M (1 <= M <= 10,000)条双向道路,所有道路的总长度不超过1,000,000,000。有些农场之间存在着多条道路,所有的农场之间都是连通的。
Bessie希望计算出该图中最小生成树中的最长边的长度。
输入格式
两个整数N和M。
接下来M行,每行三个用空格隔开的整数A_i, B_i和L_i,表示A_i和 B_i之间有一条道路长度为L_i。
输出格式
一个整数,表示最小生成树中的最长边的长度。
输入输出样例
输入 #1
3 3
1 2 23
2 3 1000
1 3 43
输出 #1
43
【解题思路】
最小生成树Kruskal
判断最长边就OK了
【code】
1 #include <cstdio>
2 #include <iostream>
3 #include <algorithm>
4 using namespace std;
5 int n,m,k,ans=-1<<30;
6 int fa[10005];
7 struct Node{
8 int x;
9 int y;
10 int z;
11 }a[10005];
12 inline bool cmp(const Node &a,const Node &b){
13 return a.z<b.z;
14 }
15 inline int Find(int i){
16 if(fa[i]==i)return i;
17 return fa[i]=Find(fa[i]);
18 }
19 inline void Kruskal(){
20 for(register int i=1;i<=m;i++){
21 if(Find(a[i].x)!=Find(a[i].y)){
22 int f1=Find(a[i].x);
23 int f2=Find(a[i].y);
24 if(f1!=f2)fa[f1]=f2;
25 k++;
26 if(a[i].z>ans)ans=a[i].z;
27 }
28 if(k==n-1)break;
29 }
30 }
31 int main(){
32 //freopen("1547.in","r",stdin);
33 //freopen("1547.out","w",stdout);
34 scanf("%d%d",&n,&m);
35 for(register int i=1;i<=m;i++)
36 scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);
37 for(register int i=1;i<=n;i++)
38 fa[i]=i;
39 sort(a+1,a+m+1,cmp);
40 Kruskal();
41 printf("%d\n",ans);
42 return 0;
43 }
原文地址:https://www.cnblogs.com/66dzb/p/11515472.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- ELK学习笔记之Docker Container exited with code 137
- 用这10个小技巧加速Python编程
- Dijkstra算法及其C++实现
- WPF 启动屏幕键盘
- dotnet 里的那些锁 AutoResetEvent 用法
- MySQL是如何实现事务的ACID
- 白话K8S核心组件概念
- k8s 架构、基本概念及命令
- Java API 连接 Hbase示例
- 点线图和阶梯图的画法
- 添加直线的两种方式
- nginx fastcgi模块ngx_http_fastcgi_module详细解析、使用手册、完整翻译
- Chrome代码调试指南
- Maven安装与配置
- CentOS7安装elk,并监控Nginx的access.log日志