描述


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)相关推荐

  1. bzoj 1601: [Usaco2008 Oct]灌水(最小生成树)

    1601: [Usaco2008 Oct]灌水 Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 1978  Solved: 1297 [Submit][ ...

  2. pod实例数是什么意思_[灌水] Kubernetes In Action: Pod

    Pod pod 可以有多个 副本,比如 slave 实际上是 pod 的副本,单一的 pod 存在唯一的 node 上. IP 分配的单位, pod 容器共享 pod 容器共享 volume, pod ...

  3. redis stream持久化_[灌水] Redis 的持久化

    关于 Redis 的 Persistence, 最好的入门材料应该是: 它有两种形式,AOF 和 RDB:RDB 相对来说是一个数据库的"snapshot",通过 SAVE 或者 ...

  4. 泛型的比喻_通配符?水_标识符T橡皮泥

    背景: 泛型太痛苦了,无中生有.从0构建,比喻效果. 我: ? <> E T ,这些东西太让人头痛了,就是抽象的东西,就算使用3天,我也要把这个东西弄清楚,否则极为难受. 小殊

  5. 微信朋友圈python广告投了多少钱_朋友圈广告的评论区,当代人的灌水BBS

    记者 | 马越 编辑 | 牙韩翔 1 如果你最近几天都忍住没发过朋友圈,也没给任何人点赞评论,却冷不防多了个小红点提醒--没错,八成是又有人收到Python的广告了. 6张不明所以的图片,加上20个字 ...

  6. 计算机类sci四大水刊,材料灌水的sci期刊_十大水榜sci杂志_四大垃圾sci杂志

    关于管理学方面的SCI收录期刊有哪些? chinese medical journal(CMJ) 文 介绍|投稿经验|EigenFactor new zealand journal of agricu ...

  7. 怎么绕过论坛回复_可怕,GPT3论坛跟帖灌水一周无人发现!专挑热搜,秒秒钟长文...

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI "我被绿了怎么办"."存款3000万的我仍然感到迷茫"."人在美国,刚下飞机" ...

  8. BZOJ 1601 [Usaco2008 Oct]灌水 (最小生成树)

    题意 Farmer John已经决定把水灌到他的n(1<=n<=300)块农田,农田被数字1到n标记.把一块土地进行灌水有两种方法,从其他农田饮水,或者这块土地建造水库. 建造一个水库需要 ...

  9. CSDN自动回复灌水乐园帖子-httpClient篇

    package com.ws; import java.io.IOException; import java.util.ArrayList; import java.util.List; //1.首 ...

最新文章

  1. 单细胞RNA降维之UMAP
  2. 让Windows 8 / 8.1 以及 Windows Server 2012 / 2012 R2的桌面,显示我的电脑图标
  3. java.util.concurrent.Exchanger应用范例与原理浅析
  4. php 腾讯云 文字识别_腾讯云安全为何成为企业首选?4大原因成为制胜王道
  5. ehcache 缓存java对象_Ehcache 整合Spring 使用页面、对象缓存
  6. 阿里云文件存储的高性能架构演进之路
  7. linux学习手册,Linux命令学习手册-ps
  8. 手绘时钟的设计与实现
  9. LogParser的IIS网站分析技
  10. 提交spark任务命令
  11. 转分享[Mac] QQ音乐Mac特别版 可以下载无损
  12. IE-LAB网络实验室:华为认证 北京华为认证,思科ccie,sp ccie 思科ccnp CCNP需要学习多长时间
  13. 修路【NOIP2016提高组模拟】
  14. Simscape Mutibody Modeling学习--碰撞接触与反应(1)
  15. 为选区添加描边_ps怎么给选区加上虚线描边
  16. mysql sasl_SASL认证失败的原因(authentication failed)
  17. 2dlda人脸识别 matlab,利用2DPCA和2DLDA在ORL人脸数据库上做的人脸识别实验
  18. 机器视觉_相机开发(二)——大恒相机
  19. 孙子兵法 三十六计(猫鼠版)
  20. JAVA面试常见问题200+

热门文章

  1. H7-TOOL | 以太网 - 动态IP(DHCP)功能测试
  2. python创建django项目_搭建Python-Django环境,创建第一个Django项目
  3. 正则表达式加参数匹配
  4. SQLyog笔记-CURRENT_TIMESTAMP在SQLyog的配置
  5. canvas笔记-canvas适应浏览器(填充整个页面)
  6. Java高级语法笔记-文件读写
  7. php网站服务器500,php服务器错误500
  8. matlab字符串固定长度,限制Matlab用户界面编辑框中的字符串长度
  9. 算法题3 二分查找法
  10. mongodb 查询内嵌文档