洛谷P1550 [USACO08OCT]打井Watering Hole
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 another pasture which already has water.
Digging a well in pasture i costs W_i (1 <= W_i <= 100,000).
Connecting pastures i and j with a pipe costs P_ij (1 <= P_ij <= 100,000; P_ij = P_ji; P_ii=0).
Determine the minimum amount Farmer John will have to pay to water all of his pastures.
POINTS: 400
农民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 需要为连通整个牧场的每一块田地所需要的钱数。
输入输出格式
输入格式:
第1 行为一个整数n。
第2 到n+1 行每行一个整数,从上到下分别为W_1 到W_n。
第n+2 到2n+1 行为一个矩阵,表示需要的经费(P_ij)。
输出格式:
只有一行,为一个整数,表示所需要的钱数。
输入输出样例
4 5 4 4 3 0 2 2 2 2 0 3 3 2 3 0 4 2 3 4 0
9
说明
John等着用水,你只有1s时间!!!
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define maxn 310 using namespace std; int n,fa[maxn],num; struct node{int from,to,v;bool operator < (const node &a)const{return v<a.v;} }e[maxn*maxn]; int find(int x){if(x==fa[x])return x;return fa[x]=find(fa[x]); } int main(){scanf("%d",&n);int x;for(int i=0;i<=n;i++)fa[i]=i;for(int i=1;i<=n;i++){scanf("%d",&x);e[++num].from=0;e[num].to=i;e[num].v=x;}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){scanf("%d",&x);if(i>j)e[++num].from=i,e[num].to=j,e[num].v=x;}}sort(e+1,e+num+1);int ans=0;for(int i=1;i<=num;i++){int f1=find(e[i].from),f2=find(e[i].to);if(f1!=f2){ans+=e[i].v;fa[f1]=f2;}}printf("%d",ans);return 0; }
转载于:https://www.cnblogs.com/thmyl/p/8977312.html
洛谷P1550 [USACO08OCT]打井Watering Hole相关推荐
- Luogu P1550 [USACO08OCT]打井Watering Hole
0号结点:农夫John山泉天然矿泉水( by Luogu第一篇题解 #include<cstdio> #include<cstring> #include<algorit ...
- P1550 [USACO08OCT]打井Watering Hole
传送门 如果没有挖井只是联通所有点就是最小生成树 但是有挖井,我们需要转换一下 把挖井操作看成 0 号点连一条边过去 然后还是最小生成树.. 因为是稠密图,所以用 prim 算法来求最小生成树 #in ...
- [bzoj1601]灌水(洛谷P1550)
[USACO08OCT]Watering Hole G 洛谷灌水区 传送门 D e s c r i p t i o n Description Description Farmer John已经决定把 ...
- 洛谷 P1550 浇水
洛谷 1550 浇水 题目背景 John的农场缺水了!!! 题目描述 Farmer John has decided to bring water to his N (1 <= N <= ...
- 洛谷P1550 打井
题目背景:考完试回来发现了一道原题QAQ 题目背景 John的农场缺水了!!! 题目描述 农民John 决定将水引入到他的n(1<=n<=300)个牧场.他准备通过挖若 干井,并在各块田中 ...
- 洛谷 深基 第1部分 语言入门 第5章 数组与数据批量存储
P1428 小鱼比可爱 小鱼比可爱 - 洛谷 P1427 小鱼的数字游戏 小鱼的数字游戏 - 洛谷 P5727 [深基5.例3]冰雹猜想 [深基5.例3]冰雹猜想 - 洛谷 P5727 [深基5.例3 ...
- 洛谷题目按难度点评---入门难度
洛谷题目按难度点评---入门难度 1.p1421 小玉买文具 难度:入门难度 考点:输入,输出,整数的四则运算 适用:小学生 #include <stdio.h> int main(){ ...
- 洛谷-题解 P2672 【推销员】
独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...
- 洛谷 P1142 轰炸
洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...
最新文章
- ASP.NET Core 源码阅读笔记(5) ---Microsoft.AspNetCore.Routing路由
- scp错误 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- unity 公用的方法库
- 在.NET Core 中使用 FluentValidation 进行规则验证
- Python3 爬虫学习笔记 C04 【自动化测试工具 Selenium】
- ado.net mysql 事务_ADO.NET事务
- matlab运行时风扇,TCFD和CAESES耦合优化案例-轴流风扇
- localhost改成想要的IP方法
- level shifter和isolation cell如何摆放
- Linux -- 搜狗输入法安装完成之后的设置
- 6.22 android计算字符高度宽度,红蓝3D图片的制作原理及NDK生成实现
- nvme分区选mbr还是guid_win7安装系统硬盘模式mbr和guid选哪个?
- ubuntu20.04系统安装vmtool工具
- 第11课:生活中的组合模式——自己组装电脑
- 周一见!距离阿里巴巴开源开放周还有3天
- geth配置中,genesis.json的几个问题
- 开源共享 · 融金服产 — 2021 中关村论坛开源创新发展论坛在京举办
- 如何友好的判断微信已被删除或拉黑,不留痕迹,无需插件
- 西门子WINCC日常问题记录
- 【电信学】【2013】宽带隔离双端口MIMO天线的设计与分析