题意:

有n个农场,已知这n个农场都互相相通,有一定的距离,现在每个农场需要装光纤,问怎么安装光纤能将所有农场都连通起来,并且要使光纤距离最小,输出安装光纤的总距离。

思路:

又是一个最小生成树,因为给出了一个二维矩阵代表他们的距离,直接算prim就行了。

代码:

#include <iostream>
using namespace std;#define maxn 105
#define inf 0x3f3f3f3fint map[maxn][maxn],n;void Prim()
{int i,j,d[maxn],vis[maxn],mi,v;for(i=1;i<=n;i++){d[i]=map[1][i];vis[i]=0;}for(i=1;i<=n;i++){mi=inf;for(j=1;j<=n;j++)if(!vis[j] && d[j]<mi){mi=d[j];v=j;}vis[v]=1;for(j=1;j<=n;j++)if(!vis[j] && d[j]>map[v][j])d[j]=map[v][j];}for(d[0]=0,i=1;i<=n;i++) d[0]+=d[i];cout<<d[0]<<endl;
}int main()
{int i,j;while(cin>>n){for(i=1;i<=n;i++)for(j=1;j<=n;j++)cin>>map[i][j];Prim();}return 0;
}

转载于:https://www.cnblogs.com/darklights/p/7647610.html

POJ1258 Agri-Net【最小生成树】相关推荐

  1. linux服务器关机日期,linux服务器last查看关机记录

    1.查看重启记录 last reboot命令 [root@test ~]# last reboot reboot system boot 2.6.-.el6.x Mon May : - : (+:) ...

  2. POJ1258最小生成树简单题

    题意:       给你个图,让你求一颗最小生成树. 思路:      裸题,克鲁斯卡尔或者普利姆都行. #include<stdio.h> #include<algorithm&g ...

  3. poj1258 Agri-Net 最小生成树Kruskal、Prim

    题意: 有n个农场,已知这n个农场都互相相通,有一定的距离,现在每个农场需要装光纤,问怎么安装光纤能将所有农场都连通起来,并且要使光纤距离最小,输出安装光纤的总距离.说白了就是要求把这n个农场连起来所 ...

  4. 数据结构与算法(7-3)最小生成树(普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法)

    目录 一.最小生成树简介 二.普里姆算法(Prim) 1.原理 2.存储 2-1.图顶点和权: 2-3. 最小生成树: 3.Prim()函数 3-1.新顶点入树 3-2.保留最小权 3-3. 找到最小 ...

  5. [kuangbin带你飞]专题六 最小生成树 L - 还是畅通工程 (简单最小生成树)

    L - 还是畅通工程 题目链接:https://vjudge.net/contest/66965#problem/L 题目: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府&qu ...

  6. 图的算法专题——最小生成树

    概要: Prim算法 Kruskal算法 1.Prim算法 算法流程: (1)对图G(V,E)设置集合S来存放已被并入的顶点,然后执行n次(2)(3) (2)每次从未并入顶点集合中选择与集合S最近的一 ...

  7. 【BZOJ1016】【Luogu P4208】 [JSOI2008]最小生成树计数 最小生成树,矩阵树定理

    蛮不错的一道题,遗憾就遗憾在数据范围会导致暴力轻松跑过. 最小生成树的两个性质: 不同的最小生成树,相同权值使用的边数一定相同. 不同的最小生成树,将其都去掉同一个权值的所有边,其连通性一致. 这样我 ...

  8. Educational Codeforces Round 9 F. Magic Matrix 最小生成树

    F. Magic Matrix 题目连接: http://www.codeforces.com/contest/632/problem/F Description You're given a mat ...

  9. [vijos1234]口袋的天空最小生成树

    题目链接:https://vijos.org/p/1234 白天刚刚写完prim的算法,晚上就心血来潮的打了一道最小生成树的题 虽然有题解说可以用prim做,但是这道题明显是加最小的边,感觉krusk ...

最新文章

  1. android-创建流式布局,并修改最后一行的最后一个view
  2. 线程Queue,进程Queue和RabbitMQ区别
  3. 【Python-pywt】 小波变化库—Pywavelets 学习笔记
  4. quartz 表达式解析 详解
  5. (转载)linux中shell变量
  6. flash cs6 初试
  7. idea出现Cannot find keymap “Windows copy的报错“
  8. Tomcat修改默认主页
  9. SQLSERVER的中文排序规则
  10. 昊海微信拼团php,最新微信昊海拼团系统独立版源码分享,微信团购关注送红包送优惠卷功能,附说明文档...
  11. Pythonnbsp;实现LeNet网络模型的训练及预测
  12. 网页前端实现五星好评效果
  13. 【转载】一个程序猿必须会玩的游戏
  14. 云服务器怎么采购便宜?云服务器优惠 3 大准则
  15. 【商品架构day2】一个商品的领域模型长什么样子 - 淘宝十多年前的认知
  16. XTF文件的数据结构解析完成
  17. 在IE浏览器中实现网页自动翻译
  18. 关掉移动光猫的路由功能,用自己的路由器拨号
  19. 如何注册域名、备案以及解析
  20. jupyter更改默认路径

热门文章

  1. 自适应col自动换行显示_10kV配网自适应综合型馈线自动化技术的测试问题及解决措施...
  2. android 自定义键盘_Android自定义输入车牌号键盘、车牌简称,数字 ,字母键盘...
  3. python 多进程_说说Python多线程与多进程的区别?
  4. RN pod install 失败(could not find compatible versions for pod “React/Core“)
  5. 常用git命令思维图
  6. mysql 求数据的长度_mysql 如何求数据的长度
  7. linux日常运维手册_Linux日常运维上传下载工具lrzsz
  8. 使用Microsoft Visual Studio International Pack获得中文字符串的所有拼音组合(处理多音字)...
  9. RibbitMQ 大数据分布式下的消息队列思
  10. 洛谷P1073最优贸易——双向取值