新的开始 LibreOJ - 10066

vjudge提交链接

题意:
——现已知各个矿井之间的输送电所需花费,但是需要再建一个发电站。该发电站需建在某个矿井上,已给出建在不同矿井上的花费。求所有矿井都能有电的最小花费。
解题思路:
——假设存在一个0号矿井,0号矿井到各个矿井之间的输电花费为p,即建立发电站的费用。现变为裸的最小生成树问题。

代码1:(Prim)

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int INF=0x3f3f3f3f;
const int N=330;
int e[N][N],book[N],dis[N],n;
void Prim()
{//以0号来建树 int mind,u,v,i,j,sum=0;memset(book,0,sizeof(book));for(i=0;i<=n;i++)  dis[i]=e[0][i];book[0]=1;for(i=1;i<=n;i++){mind=INF;u=-1;for(j=1;j<=n;j++){if(!book[j]&&mind>dis[j]){mind=dis[j];u=j;}}if(u==-1)   break;book[u]=1;sum+=dis[u];for(v=1;v<=n;v++){if(!book[v]){if(dis[v]>e[u][v])dis[v]=e[u][v];}}}printf("%d\n",sum);
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&e[0][i]);e[i][0]=e[0][i];}for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%d",&e[i][j]);Prim();return 0;
}

代码2:(Kruskal)

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int INF=0x3f3f3f3f;
const int N=330;
int f[N],n;
struct Node{int u,v,w;
}q[N*N/2];
void init()
{for(int i=0;i<=n;i++)f[i]=i;
}
bool cmp(Node a,Node b)
{return a.w<b.w;
}
int find(int x)
{if(x!=f[x])f[x]=find(f[x]);return f[x];
}
int main()
{scanf("%d",&n);init();int cnt=0,w;for(int j=1;j<=n;j++){scanf("%d",&w);q[++cnt].u=0;q[cnt].v=j;q[cnt].w=w;}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){scanf("%d",&w);if(i<j){q[++cnt].u=i;q[cnt].v=j;q[cnt].w=w;}}}sort(q+1,q+1+cnt,cmp);int count=0,sum=0;for(int i=1;i<=cnt;i++){int tu=find(q[i].u);int tv=find(q[i].v);if(tu!=tv){sum+=q[i].w;f[tv]=tu;count++;if(count==n)break;  }   }printf("%d\n",sum);return 0;
}

新的开始 LibreOJ - 10066(最小生成树模板)相关推荐

  1. 计算机新课标学习心得体会,【精品】新课标学习心得体会模板锦集10篇

    [精品]新课标学习心得体会模板锦集10篇 在平日里,心中难免会有一些新的想法,马上将其记录下来,这样可以记录我们的思想活动.很多人都十分头疼怎么写一篇精彩的心得体会,下面是小编收集整理的新课标学习心得 ...

  2. Vs2019创建新项目时,没有任何模板,导致无法创建新项目

    Visual Studio创建新项目时,没有任何模板,导致无法创建新项目 问题描述 解决办法 问题描述 Vs2019创建新项目时,没有任何模板,导致无法创建新项目. 之前都是正常的,今天突然发现没法创 ...

  3. 创意新员工入职培训PPT模板

    模板介绍 创意新员工入职培训PPT模板.一套其它幻灯片模板,内含灰色多种配色,创意风格设计,动态播放效果,精美实用. 希望下面这份精美的PPT模板能给你带来帮助,温馨提示:本资源使用PPT或PPTX等 ...

  4. 公司新员工入职培训PPT模板

    入职培训,主要是公司对每一个初入公司的新员工介绍公司历史.基本工作流程.行为规范.组织结构.人员结构和处理同事关系等活动的总称. 新员工刚入职的时候,对公司的认识不深,让员工快速了解公司,上手工作,做 ...

  5. 最小生成树模板总结--PrimKruskal

    一.最小生成树:连通N个点的边权值总和最小的树. 二.时间复杂度 Prim算法:时间复杂度O(|V|2+|E|),O(|E|log|V|) Kruskal算法:时间复杂度O(|E|log|E|) 算法 ...

  6. 最小生成树模板 POJ——1258

    最小生成树是一个比较简单数据结构,形成最小生成树的方式有两种. 最小生成树是有图生成树,保证树的每条边的权值之和最小的生成树就叫做最小生成树,这一类的题目起初比较基础,主要是熟悉模板,POJ 1258 ...

  7. 最小生成树(模板题:最优布线问题,繁忙的都市,联络员)(C++)

    文章目录 序言 正文 First Promble 最优布线问题 时间限制: 1000 m s 1000 ms 1000ms 空间限制: 262144 K B 262144 KB 262144KB 题目 ...

  8. C++11新特性之变长参数模板详解

    本文主要介绍了C++11变长参数模板,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 目录 C++11 变长参数模板 变长函数参数 ...

  9. 最小生成树模板题 P1692

    Description 给出N个顶点.E条边的连通无向简单图,请你完成下列任务: 任务1.求边权和最小的生成树(最小生成树) 任务2.求边权和最大的生成树(最大生成树) 任务3.求最大边最小的生成树( ...

  10. 畅通工程(最小生成树模板)

    题目描述 给出无向图中M个节点间N条边的权值. 求一个使得所有点连通的子图,要求图内的边权和最小 Input 测试输入包含若干测试用例 每个测试用例的第1行包含N.M ( <100 ) 随后的 ...

最新文章

  1. 2017年大数据的十大发展趋势
  2. Centos 7.0设置/etc/rc.local无效问题解决
  3. 【bzoj3224】 Tyvj1728—普通平衡树
  4. 后台开发必读书籍--Linux 高性能服务器编程
  5. ESP8266在线视频网址
  6. np.newaxis学习【转载】
  7. android widget 发送广播,android-从应用程序向小部件发送数据
  8. 【TP5】Thinkphp5初体验1
  9. mate30支持鸿蒙系统,Mate30不能使用GMS服务,华为P30不能通过谷歌安全认证,华为:鸿蒙系统不远了...
  10. python窗口图形界面编程上传图片_python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例...
  11. 栾川一高2021高考成绩查询,2017栾川一高录取分数线(附2017高考成绩喜报)
  12. MySQL 主从同步方式
  13. 阿里巴巴未来十年使命、愿景和价值观
  14. 一篇文章了解爬虫技术现状
  15. 由Photoshop高反差保留算法原理联想到的一些图像增强算法
  16. 如何做一名优秀的下属
  17. SAP R3 功能详解 - 财务管理
  18. Unity Shader入门精要第四章:学习Shader 所需的数学基础--坐标空间
  19. Acer 4750 安装黑苹果_黑苹果怎么安装?聊一下前期准备
  20. webrtc 的回声抵消(aec、aecm)算法简介(转)

热门文章

  1. Python学习 --- 列表
  2. 使用PHP和NetBeans创建基于XAMPP的动态网页(学习笔记7)(技术笔记7)网站应用和服务器管理 澳大利亚维多利亚大学VIT1204 Web Application and
  3. [Python-turtle]正弦定理能擦出多漂亮的火花?【1】
  4. 《郭论—捡史》郭德纲/著 读后得
  5. 如何在没有安装安卓环境的mac os上装adb环境.
  6. 蒲丰投针实验原理_神奇的圆周率——布丰投针实验
  7. ROS Launch使用总结
  8. matplotlib中x轴y轴字号或字体修改
  9. 2.1Mysql 基础--基本介绍
  10. 万兆铜缆--七类双绞线--光纤等内容