热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

hrbust哈理工oj2038联系网络【MST】【最小生成树】

联系网络TimeLimit:1000MSMemoryLimit:32768KTotalSubmit:111(37users)TotalAccepted:53(33users)R

联系网络
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 111(37 users) Total Accepted: 53(33 users) Rating:  Special Judge: No
Description

TwIStOy要建立一个联系网络,这样可以方便的联系到所有人。如果TwIStOy可以联系到A,A又可以联系到B,那么就认为

TwIStOy可以联系到B了。但是建立两个人之间的联系方式是需要一定的代价的,现在TwIStOy希望使用一个最小的代价联系到

所有人。

Input

本题有多组数据,输入处理到文件结束。

每组输入第一行包括一个整数n,表示有n个人编号分别是0 ~ (n-1)。TwIStOy的编号总是0。

接下来的n行每行包括n个整数,第i行的第j个整数w表示编号为i的联系到编号为j的人所需要的代价是w。

当然这个是一定满足w[i,j] = w[j,i]的。

n <= 300

Output
每组输出包括一行,一个整数表示最小代价。
Sample Input

3

0 2 3

2 0 1

3 1 0


Sample Output

3


Source
2014 Winter Holiday Contest 5
Author
TwIStOy

判断算法关键语句:

现在TwIStOy希望使用一个最小的代价联系到

所有人。

一道裸的最小生成树的一道题,这里我们直接上代码:

#include
#include
#include
using namespace std;
int f[900005];
struct people
{
int x,y,val;
}a[90005];
int map[350][350];
int cmp(people a,people b)
{
return a.val}
int find(int x)
{
return f[x] == x ? x : (f[x] = find(f[x]));
}
void merge(int a,int b)
{
int A,B;
A=find(a);
B=find(b);
if(A!=B)
f[B]=A;
}
int main()
{
int n;
while(~scanf("%d",&n))
{
for(int i=0;i {
f[i]=i;
}
int cOnt=0;
for(int i=0;i {
for(int j=0;j {
scanf("%d",&map[i][j]);
a[cont].x=i;
a[cont].y=j;
a[cont].val=map[i][j];
cont++;
}
}
sort(a,a+cont,cmp);
int output=0;
for(int i=0;i {
if(find(a[i].x)!=find(a[i].y))
{
merge(a[i].x,a[i].y);
output+=a[i].val;
}
}
printf("%d\n",output);
}
}







推荐阅读
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • CentOS 7 磁盘与文件系统管理指南
    本文详细介绍了磁盘的基本结构、接口类型、分区管理以及文件系统格式化等内容,并提供了实际操作步骤,帮助读者更好地理解和掌握 CentOS 7 中的磁盘与文件系统管理。 ... [详细]
  • 三星W799在2011年的表现堪称经典,以其独特的双屏设计和强大的功能引领了双模手机的潮流。本文详细介绍其配置、功能及锁屏设置。 ... [详细]
  • 在API测试中,我们常常需要通过大量不同的数据集(包括正常和异常情况)来验证同一个接口。如果为每种场景单独编写测试用例,不仅繁琐而且效率低下。采用数据驱动的方式可以有效简化这一过程。本文将详细介绍如何利用CSV文件进行数据驱动的API测试。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文介绍了在使用Visual Studio 2015进行项目开发时,遇到类向导弹出“异常来自 HRESULT:0x8CE0000B”错误的解决方案。通过具体步骤和实践经验,帮助开发者快速排查并解决问题。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
author-avatar
mobiledu2502868523
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有