【USACO 3.1.1】最短网络
【描述】
约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了用最小的消费,他想铺设最短的光纤去连接所有的农场。
你将得到一份各农场之间连接费用的列表,你必须找出能连接所有农场并所用光纤最短的方案。
每两个农场间的距离不会超过100000
【格式】
PROGRAM NAME: agrinet
INPUT FORMAT:(file agrinet.in)
第一行: | 农场的个数,N(3<=N<=100)。 |
第二行..结尾: | 后来的行包含了一个N*N的矩阵,表示每个农场之间的距离。理论上,他们是N行,每行由N个用空格分隔的数组成,实际上,他们限制在80个字符,因此,某些行会紧接着另一些行。当然,对角线将会是0,因为不会有线路从第i个农场到它本身。 |
OUTPUT FORMAT:(file agrinet.out)
只有一个输出,其中包含连接到每个农场的光纤的最小长度。
【分析】
不解释了,裸的最小生成树。
#include <cstdlib>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
const int maxn=+;
using namespace std;
struct Edge
{
int u,v;
int w;
bool operator <(const Edge&b)const
{
return w<b.w;
}
}data[maxn*maxn];
int n,map[maxn][maxn];
int parent[maxn],point;//并查集 int find(int x) {return parent[x]>?parent[x]=find(parent[x]):x;}
void kruskal();
void merge(int a,int b);//加权法则 int main()
{
int i,j;
//文件操作
freopen("agrinet.in","r",stdin);
freopen("agrinet.out","w",stdout);
memset(parent,-,sizeof(parent));
scanf("%d",&n);
for (i=;i<=n;i++)
for (j=;j<=n;j++)
{
int w;
scanf("%d",&w);
//加边
if (i==j) continue;
data[point].u=i;data[point].v=j;data[point].w=w;
point++;
}
kruskal();
return ;
}
void kruskal()
{
int ans=,i;
sort(data,data+point);
for (i=;i<point;i++)
{
int u=data[i].u,v=data[i].v;
u=find(u);v=find(v);
if (u!=v)
{
merge(u,v);
ans+=data[i].w;
}
}
printf("%d",ans);
}
void merge(int x,int y)
{
x=find(x);y=find(y);
if (parent[x]>parent[y]) {parent[y]+=parent[x];parent[x]=y;}
else {parent[x]+=parent[y];parent[y]=x;}
}
【USACO 3.1.1】最短网络的更多相关文章
- P1546 最短网络(codevs | 2627村村通)
P1546 最短网络 Agri-Net 题目背景 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当然,他需要你的帮助. 题目描述 约翰已经给他的农场安排了一 ...
- 洛谷P1546 最短网络 Agri-Net
P1546 最短网络 Agri-Net 526通过 959提交 题目提供者JOHNKRAM 标签图论贪心USACO 难度普及/提高- 提交该题 讨论 题解 记录 最新讨论 50分C++代码,求解 请指 ...
- COGS【831】最短网络
831. [USACO 3.1] 最短网络 ★ 输入文件:agrinet.in 输出文件:agrinet.out 简单对比 时间限制:1 s 内存限制:128 MB usaco/agr ...
- 洛谷——P1546 最短网络 Agri-Net
P1546 最短网络 Agri-Net 题目背景 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当然,他需要你的帮助. 题目描述 约翰已经给他的农场安排了一 ...
- 填坑...P1546 最短网络 Agri-Net
P1546 最短网络 Agri-Net 难度普及/提高- 时空限制1s / 128MB 题目背景 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当然,他需要 ...
- P1546 最短网络 Agri-Net题解(克鲁斯卡尔)
P1546 最短网络 Agri-Net 那么这个题是一道最小生成树的板子题 在此讲解kruskal克鲁斯卡尔方法: 原理: 并查集在这里被用到: 众所周知:树满足这样一个定理:如果 图 中有n个节点并 ...
- 洛谷 P1546 最短网络 Agri-Net
题目链接 https://www.luogu.org/problemnew/show/P1546 题目背景 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当 ...
- 洛谷P1546 最短网络 Agri-Net(最小生成树,Kruskal)
洛谷P1546 最短网络 Agri-Net 最小生成树模板题. 直接使用 Kruskal 求解. 复杂度为 \(O(E\log E)\) . #include<stdio.h> #incl ...
- [图论]最短网络:prim
最短网络 目录 最短网络 Description Input Output Sample Input Sample Output 解析 代码 Description 农民约翰被选为他们镇的镇长!他其中 ...
- [图论]最短网络:kruskal
最短网络 目录 最短网络 Description Input Output Sample Input Sample Output 解析 代码 Description 农民约翰被选为他们镇的镇长!他其中 ...
随机推荐
- nginx第三方模块---nginx-sticky-module的使用(基于cookie的会话保持)
目前的项目网站架构中使用了F5和nginx,F5用来做负载均衡,nginx只用作反向代理服务器.最近应客户的要求准备去掉F5,使用软负载.大家都知道nginx抗并发能力强,又可以做负载均衡,而且使用n ...
- Delphi 客户端调用Webservice 的TClientdataset 报出“http://www.borland.com/namespaces/Types-IAppServerSOAP”
http://www.borland.com/namespaces/Types-IAppServerSOAP 服务器未能识别 HTTP 头 SOAPAction 的值 (2011-04-25 16:4 ...
- Android *.db-journal
config.xml <!-- The default journal mode to use use when Write-Ahead Logging is not active. Choic ...
- Swap Nodes in Pairs——LeetCode
Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1->2-&g ...
- 使用vs2010编译 Python \ SIP \ PyQt4
(1)先使用vs2010编译 Python http://www.cnblogs.com/fortwo/archive/2013/04/16/3023871.html 注意,若编译的为debug版的P ...
- HDOJ(HDU) 2136 Largest prime factor(素数筛选)
Problem Description Everybody knows any number can be combined by the prime number. Now, your task i ...
- cf702A Maximum Increase
A. Maximum Increase time limit per test 1 second memory limit per test 256 megabytes input standard ...
- SRM 395(1-250pt)
DIV1 250pt 题意:在平面直角坐标系中,只能走到整点,每次有两种移动方法,可以沿平行于坐标轴方向走,也可以沿45度方向走,前者走一步耗时wt,后者走一步耗时st.比如从(x, y)可以走到(x ...
- Postman 安装 & 资料
安装 下载地址: http://chromecj.com/web-development/2014-09/60/download.html 怎么在谷歌浏览器中安装.crx扩展名的离线Chrome插件? ...
- python 解析xml 文件: SAX方式
环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...