『USACO08OCT]』Watering Hole

题面

code

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int n,cnt,ans,fa[305];
 4 struct edge{int x,y,v;}e[100005];
 5 inline int read() {
 6     int x=0,f=1; char c=getchar();
 7     while(c<‘0‘||c>‘9‘) {if(c==‘-‘)f=-1; c=getchar();}
 8     while(c>=‘0‘&&c<=‘9‘) x=(x<<3)+(x<<1)+c-‘0‘,c=getchar();
 9     return x*f;
10 }
11 int getfa(int x) {return x==fa[x]?x:fa[x]=getfa(fa[x]);}
12 int add(int x,int y,int z) {
13     e[++cnt].x=x; e[cnt].y=y; e[cnt].v=z;
14 }
15 int cmp(edge x1,edge x2) {return x1.v<x2.v;}
16
17 int main() {
18     n=read();
19     for(int i=1;i<=n;i++) fa[i]=i;
20     for(int i=1;i<=n;i++) {int vv=read(); add(0,i,vv);}
21     for(int i=1;i<=n;i++)
22      for(int j=1;j<=n;j++) {
23         int vv=read();
24         if(i!=j) add(i,j,vv);
25      }
26     sort(e+1,e+cnt+1,cmp);
27     for(int i=1;i<=cnt;i++) {
28         int x=getfa(e[i].x),y=getfa(e[i].y);
29         if(x!=y) {cnt++; ans+=e[i].v; fa[x]=y;}
30         if(cnt==n) break;
31     }
32     printf("%d",ans);
33 }
34 /*
35 #最小生成树#
36 将打井看做与一个新的节点(0)连接 ,边权为 w[i]
37 相当于图中有n+1个节点 ,求它们的最小生成树。
38 */ 

原文地址:https://www.cnblogs.com/qq8260573/p/10117034.html

时间: 2024-10-11 05:56:58

『USACO08OCT]』Watering Hole的相关文章

P1550 [USACO08OCT]打井Watering Hole

P1550 [USACO08OCT]打井Watering Hole 题目比较简单,却提醒了图论建图的的重要性. 很多时候建图不只是要将给定的信息建立,还需要添加辅助点. 不过这题是真水 #include<cstdio> #include<algorithm> #include<iostream> #include<cstring> using std::sort; const int maxn=500; struct node { int A,B; int

luogu P1550 [USACO08OCT]打井Watering Hole

题目背景 John的农场缺水了!!! 题目描述 Farmer John has decided to bring water to his N (1 <= N <= 300) pastures which are conveniently numbered 1..N. He may bring water to a pasture either by building a well in that pasture or connecting the pasture via a pipe to

题解 P1550 【[USACO08OCT]打井Watering Hole】

题面(翻译有点问题,最后一句话) 农民John 决定将水引入到他的n(1<=n<=300)个牧场.他准备通过挖若 干井,并在各块田中修筑水道来连通各块田地以供水.在第i 号田中挖一口井需要花费W_i(1<=W_i<=100,000)元.连接i 号田与j 号田需要P_ij (1 <= P_ij <= 100,000 , P_ji=P_ij)元. 请求出农民John 需要为使所有农场都与有水的农场相连或拥有水井所需要的钱数. 题意 有n个点,每个点之间都有边权,但是每个点也

『ENGLISH』

以A字母开头的词汇 英文 中文 abstract module 抽象模组 access 访问.存取 access control 存取控制 access control information 存取控制资讯 access mechanism 存取机制 access rights 存取权限 accessibility 无障碍性 accessibility information 无障碍网页资讯 accessibility problem 无障碍网页问题 accessible 无障碍的 access

『TensorFlow』函数查询列表_神经网络相关

神经网络(Neural Network) 激活函数(Activation Functions) 操作 描述 tf.nn.relu(features, name=None) 整流函数:max(features, 0) tf.nn.relu6(features, name=None) 以6为阈值的整流函数:min(max(features, 0), 6) tf.nn.elu(features, name=None) elu函数,exp(features) - 1 if < 0,否则featuresE

『数据库』随手写了一个 跨数据库 数据迁移工具

随手写了一个 跨数据库 的 数据迁移工具:>目前支持 SQLServer,MySql,SQLite: >迁移工具 可以自动建表,且 保留 主键,自增列: >迁移工具 基于 Laura.Source  ORM框架 开发: >迁移工具 支持 崩溃恢复(重启迁移工具,将会继续 未完成的 数据迁移): >每张表一个事务(即使  表中有 >100W 的数据,也是一个事务完成): >迁移后 的 自增列 和 原数据库 保持一致: 只是展示一下,直接上图片: 操作工具: 迁移工具

『AngularJS』$location 服务

参考: ng.$location Developer Guide: Angular Services: Using $location 简介 $location服务解析在浏览器地址栏中的URL(基于window.location)并且让URL在你的应用中可用.改变在地址栏中的URL会作用到$location服务,同样的,改变$location服务也会改变浏览器的地址栏.(可以使用$location进行重定向等操作) $location服务: 暴露浏览器地址栏中的URL,让你可以: 监察URL.

谈谈前端『新』技术

技术这个行当,永远会有新东西出来,不进则退.更关键的是,前端比起整个软件工程乃至计算机科学体系来说,是个相对新生草莽的领域,近年来前端生态的发展其实都是在向其他领域吸收和学习,不论是开发理念.工程实践还是平台本身(规范.浏览器).所谓的『根正苗红』的前端,不过是整个发展进程中探索的一个阶段而已,那个时代的最佳实践,很多到今天都已经不再适用.过往的经验固然有价值,但这些经验如果不结合对新事物本身的了解,就很难产生正确的判断.这里需要强调的是,学习新事物并不是为了不考虑实际需求的滥用,而是为了获取足

『转载』Debussy快速上手(Verdi相似)

『转载』Debussy快速上手(Verdi相似) Debussy 是NOVAS Software, Inc(思源科技)发展的HDL Debug & Analysis tool,这套软体主要不是用来跑模拟或看波形,它最强大的功能是:能够在HDL source code.schematic diagram.waveform.state bubble diagram之间,即时做trace,协助工程师debug. 可能您会觉的:只要有simulator如ModelSim就可以做debug了,我何必再学这