博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P1546 最短网络 Agri-Net
阅读量:5159 次
发布时间:2019-06-13

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

题目描述

约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了用最小的消费,他想铺设最短的光纤去连接所有的农场。

你将得到一份各农场之间连接费用的列表,你必须找出能连接所有农场并所用光纤最短的方案。每两个农场间的距离不会超过100000

输入输出格式

输入格式:

 

第一行: 农场的个数,N(3<=N<=100)。

第二行..结尾: 后来的行包含了一个N*N的矩阵,表示每个农场之间的距离。理论上,他们是N行,每行由N个用空格分隔的数组成,实际上,他们限制在80个字符,因此,某些行会紧接着另一些行。当然,对角线将会是0,因为不会有线路从第i个农场到它本身。

 

输出格式:

 

只有一个输出,其中包含连接到每个农场的光纤的最小长度。

 

输入输出样例

输入样例#1: 
40 4 9 214 0 8 179 8 0 1621 17 16 0
输出样例#1: 
28 模板
#include 
using namespace std;typedef long long ll;#define inf 2147483647const ll INF = 0x3f3f3f3f3f3f3f3fll;#define ri register inttemplate
inline T min(T a, T b, T c){ return min(min(a, b), c);}template
inline T max(T a, T b, T c){ return max(max(a, b), c);}template
inline T min(T a, T b, T c, T d){ return min(min(a, b), min(c, d));}template
inline T max(T a, T b, T c, T d){ return max(max(a, b), max(c, d));}#define pi acos(-1)#define me(x, y) memset(x, y, sizeof(x));#define For(i, a, b) for (int i = a; i <= b; i++)#define FFor(i, a, b) for (int i = a; i >= b; i--)#define mp make_pair#define pb push_backconst int maxn = 100005;#define mod 100003const int N=10005;// name*******************************struct edge{ int from,to,dis;} e[N];int pre[N];int Rank[N];int tot=0;int ans=0;int n;// function******************************bool cmp(edge x,edge y){ return x.dis
Rank[t2]) pre[t2]=t1; else pre[t1]=t2; if(Rank[t1]==Rank[t2]) Rank[t2]++;}//***************************************int main(){// freopen("test.txt", "r", stdin); cin>>n; For(i,1,n)init(i); For(i,1,n) For(j,1,n) { int x; scanf("%d",&x); if(i!=j) { e[++tot].from=i; e[tot].to=j; e[tot].dis=x; } } sort(e+1,e+1+tot,cmp); int cnt=0; For(i,1,tot) { if(find(e[i].from)!=find(e[i].to)) { unionone(e[i].from,e[i].to); ans+=e[i].dis; cnt++; if(cnt==n-1)break; } } cout<

 

转载于:https://www.cnblogs.com/planche/p/8688999.html

你可能感兴趣的文章
bzoj1651[Usaco2006 Feb]Stall Reservations 专用牛棚
查看>>
spring中InitializingBean接口使用理解
查看>>
团队合作之Scrum
查看>>
关于开发和测试沟通的一些问题
查看>>
Redis教程_2
查看>>
通过java给qq邮箱发送信息
查看>>
style、currentStyle、getComputedStyle区别介绍
查看>>
Python List(列表)使用示例
查看>>
poj-3069-Saruman's Army
查看>>
webstorm的破解
查看>>
C#中创建线程,创建带参数的线程
查看>>
让 VS2010 支持 HTML5 和 CSS3.0
查看>>
eclipse 中过滤空包,目录树中不显示。
查看>>
test
查看>>
从 PHP 到 Java
查看>>
OpenOffice 实现OFFICE在线预览
查看>>
Stardew Valley(星露谷物语)Mod开发之路 写在前面
查看>>
链表使用指针充分利用内存 手打分配(摈弃系统动态分配:new/delete)
查看>>
apply,call,bind的区别
查看>>
也谈谈学习
查看>>