博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1258 Agri-Net(最小生成树 Prim 模版题)
阅读量:5239 次
发布时间:2019-06-14

本文共 1416 字,大约阅读时间需要 4 分钟。

 

大意:新镇长竞选宣言就是将网络带到每一个农场,给出农场个数,两两之间建光缆的耗费,求所有都联通的最小耗费。

 

思路:最小生成树,因为边比较稠密,用Prim做。

 

PS;对于比较稠密的图,用Prim,对于比较稀疏的图,用 Kruskal。Kruskal是找边的过程,稀疏的话会比较快。

 
1 #include 
2 #include
3 #define INF 0x3f3f3f3f 4 5 int dis[110]; 6 int Map[110][110]; 7 int n; 8 int Ans; 9 10 int min(int a, int b)11 {12 return a > b ? b : a;13 }14 15 void Prim()16 {17 int Min_ele, Min_node;18 memset(dis, INF, sizeof(dis));19 Ans = 0;20 int r = 1;21 for(int i = 1; i < n; i++)22 {23 dis[r] = -1;24 Min_ele = INF;25 for(int j = 1; j <= n; j++)26 {27 if(dis[j] >= 0)28 {29 dis[j] = min(dis[j], Map[r][j]);30 if(dis[j] < Min_ele)31 {32 Min_ele = dis[j];33 Min_node = j;34 }35 }36 }37 r = Min_node;38 Ans += Min_ele;39 }40 }41 42 43 void Solve()44 {45 while(~scanf("%d", &n))46 {47 memset(Map, 0, sizeof(Map));48 for(int i = 1; i <= n; i++)49 {50 for(int j = 1; j <= n; j++)51 {52 scanf("%d", &Map[i][j]);53 }54 }55 Prim();56 printf("%d\n", Ans);57 }58 }59 60 int main()61 {62 Solve();63 64 return 0;65 }
Agri-Net

 

转载于:https://www.cnblogs.com/Silence-AC/p/3531112.html

你可能感兴趣的文章
(转)C# 泛型详解
查看>>
Excel公式巧用
查看>>
expect实现配置机器信任关系
查看>>
0821: aniy hadoop 1-6的步骤安装总结。。我怕自己忘记
查看>>
常规问题(标签默认边距,文字设置行高)
查看>>
进程与进程描写叙述符(task_struct)
查看>>
Docker镜像制作
查看>>
微信小程序支付功能
查看>>
COGS1752 [BOI2007]摩基亚Mokia(CDQ分治 + 二维前缀和 + 线段树)
查看>>
mysql通过经纬度查询400公里范围内的小区
查看>>
判断数据类型几种方法
查看>>
Tomcat+Servlet面试题都在这里
查看>>
php构造函数的继承方法
查看>>
初级前端须知
查看>>
【K8S】client-go、python-k8sclient开发K8S
查看>>
高质量程序设计指南c++/c语言(29)--深度探索指针和数组
查看>>
Java的堆(Heap)和栈(Stack)的区别
查看>>
微信服务号开发-商城微信支付
查看>>
安装本地jar到maven仓库
查看>>
基于openstack的Cloudlet
查看>>