BZOJ_1601_[Usaco2008_Oct]_灌水_(最小生成树_Kruskal)
描述
http://www.lydsy.com/JudgeOnline/problem.php?id=1601
有\(n\)个田地需要灌溉,每个田地可以自己引水,花费为\(w[i]\),或者连接其他被灌溉的田地,花费为\(p[i][j]\),求最小花费.
分析
我第一眼看以为是dp,发现不对...
如果田地不能自己引水只能和其他田地连接,就是裸的最小生成树.
这里加了一个可以自己引水,相当于加了一个和所有点都有连边,且权值分别为\(w[i]\)的结点,然后求\(n+1\)个点的最小生成树即可.
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 const int maxn=300+5; 5 struct edge{ 6 int u,v,w; 7 edge(int u=0,int v=0,int w=0):u(u),v(v),w(w){} 8 bool operator < (const edge &a) const { return w<a.w; } 9 }g[maxn*maxn]; 10 int n,ect,ans; 11 int f[maxn]; 12 inline int read(int &x){ x=0;int k=1;char c;for(c=getchar();c<'0'||c>'9';c=getchar())if(c=='-')k=-1;for(;c>='0'&&c<='9';c=getchar())x=x*10+c-'0';return x*=k; } 13 inline int find(int x){ return x==f[x]?x:f[x]=find(f[x]); } 14 int main(){ 15 read(n); 16 for(int i=1,w;i<=n;i++) g[++ect]=edge(0,i,read(w)), f[i]=i; 17 for(int i=1;i<=n;i++)for(int j=1,w;j<=n;j++){ 18 read(w); 19 if(j<i) g[++ect]=edge(i,j,w); 20 } 21 sort(g+1,g+ect+1); 22 for(int i=1,j=n;i<=ect&&j;i++){ 23 int fu=find(g[i].u),fv=find(g[i].v); 24 if(fu!=fv) f[fu]=fv, j--, ans+=g[i].w; 25 } 26 printf("%d\n",ans); 27 return 0; 28 }
View Code
转载于:https://www.cnblogs.com/Sunnie69/p/5602119.html
BZOJ_1601_[Usaco2008_Oct]_灌水_(最小生成树_Kruskal)相关推荐
- bzoj 1601: [Usaco2008 Oct]灌水(最小生成树)
1601: [Usaco2008 Oct]灌水 Time Limit: 5 Sec Memory Limit: 162 MB Submit: 1978 Solved: 1297 [Submit][ ...
- pod实例数是什么意思_[灌水] Kubernetes In Action: Pod
Pod pod 可以有多个 副本,比如 slave 实际上是 pod 的副本,单一的 pod 存在唯一的 node 上. IP 分配的单位, pod 容器共享 pod 容器共享 volume, pod ...
- redis stream持久化_[灌水] Redis 的持久化
关于 Redis 的 Persistence, 最好的入门材料应该是: 它有两种形式,AOF 和 RDB:RDB 相对来说是一个数据库的"snapshot",通过 SAVE 或者 ...
- 泛型的比喻_通配符?水_标识符T橡皮泥
背景: 泛型太痛苦了,无中生有.从0构建,比喻效果. 我: ? <> E T ,这些东西太让人头痛了,就是抽象的东西,就算使用3天,我也要把这个东西弄清楚,否则极为难受. 小殊
- 微信朋友圈python广告投了多少钱_朋友圈广告的评论区,当代人的灌水BBS
记者 | 马越 编辑 | 牙韩翔 1 如果你最近几天都忍住没发过朋友圈,也没给任何人点赞评论,却冷不防多了个小红点提醒--没错,八成是又有人收到Python的广告了. 6张不明所以的图片,加上20个字 ...
- 计算机类sci四大水刊,材料灌水的sci期刊_十大水榜sci杂志_四大垃圾sci杂志
关于管理学方面的SCI收录期刊有哪些? chinese medical journal(CMJ) 文 介绍|投稿经验|EigenFactor new zealand journal of agricu ...
- 怎么绕过论坛回复_可怕,GPT3论坛跟帖灌水一周无人发现!专挑热搜,秒秒钟长文...
晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI "我被绿了怎么办"."存款3000万的我仍然感到迷茫"."人在美国,刚下飞机" ...
- BZOJ 1601 [Usaco2008 Oct]灌水 (最小生成树)
题意 Farmer John已经决定把水灌到他的n(1<=n<=300)块农田,农田被数字1到n标记.把一块土地进行灌水有两种方法,从其他农田饮水,或者这块土地建造水库. 建造一个水库需要 ...
- CSDN自动回复灌水乐园帖子-httpClient篇
package com.ws; import java.io.IOException; import java.util.ArrayList; import java.util.List; //1.首 ...
最新文章
- 单细胞RNA降维之UMAP
- 让Windows 8 / 8.1 以及 Windows Server 2012 / 2012 R2的桌面,显示我的电脑图标
- java.util.concurrent.Exchanger应用范例与原理浅析
- php 腾讯云 文字识别_腾讯云安全为何成为企业首选?4大原因成为制胜王道
- ehcache 缓存java对象_Ehcache 整合Spring 使用页面、对象缓存
- 阿里云文件存储的高性能架构演进之路
- linux学习手册,Linux命令学习手册-ps
- 手绘时钟的设计与实现
- LogParser的IIS网站分析技
- 提交spark任务命令
- 转分享[Mac] QQ音乐Mac特别版 可以下载无损
- IE-LAB网络实验室:华为认证 北京华为认证,思科ccie,sp ccie 思科ccnp CCNP需要学习多长时间
- 修路【NOIP2016提高组模拟】
- Simscape Mutibody Modeling学习--碰撞接触与反应(1)
- 为选区添加描边_ps怎么给选区加上虚线描边
- mysql sasl_SASL认证失败的原因(authentication failed)
- 2dlda人脸识别 matlab,利用2DPCA和2DLDA在ORL人脸数据库上做的人脸识别实验
- 机器视觉_相机开发(二)——大恒相机
- 孙子兵法 三十六计(猫鼠版)
- JAVA面试常见问题200+