有趣
每条边在算答案的时候被算了二倍的边权值加上两个端点的权值,然后睡觉点额外加一次
所以可以用这个权做MST,然后加上点权最小的点

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=100005;
int n,m,a[N],f[N],ans=1e9,con;
struct qwe
{int u,v,w;
}e[N];
bool cmp(const qwe &a,const qwe &b)
{return a.w<b.w;
}
int read()
{int r=0,f=1;char p=getchar();while(p>'9'||p<'0'){if(p=='-')f=-1;p=getchar();}while(p>='0'&&p<='9'){r=r*10+p-48;p=getchar();}return r*f;
}
int zhao(int x)
{return x==f[x]?x:f[x]=zhao(f[x]);
}
int main()
{n=read(),m=read();for(int i=1;i<=n;i++){a[i]=read();ans=min(ans,a[i]);f[i]=i;}for(int i=1;i<=m;i++){int x=read(),y=read(),z=read()*2+a[x]+a[y];e[i]=(qwe){x,y,z};}sort(e+1,e+m+1,cmp);for(int i=1;i<=m&&con<n-1;i++){int fu=zhao(e[i].u),fv=zhao(e[i].v);if(fu!=fv){f[fu]=fv;con++;ans+=e[i].w;}}printf("%d",ans);return 0;
}

转载于:https://www.cnblogs.com/lokiii/p/8963826.html

bzoj 1232: [Usaco2008Nov]安慰奶牛cheer【最小生成树】相关推荐

  1. bzoj 1232 [Usaco2008Nov]安慰奶牛cheer

    思路:看出跟dfs的顺序有关就很好写了, 对于一棵树来说确定了起点那么访问点的顺序就是dfs序,每个点经过 其度数遍,每条边经过2边, 那么我们将边的权值×2加上两端点的权值跑最小生成树,最后加上一个 ...

  2. 1232: [Usaco2008Nov]安慰奶牛cheer

    1232: [Usaco2008Nov]安慰奶牛cheer Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 612  Solved: 431 [Sub ...

  3. bzoj1232[Usaco2008Nov]安慰奶牛cheer*

    bzoj1232[Usaco2008Nov]安慰奶牛cheer 题意: 给出n个节点的带权图,第i个节点ci.现在你要在这个图中选出一棵树和一个起点,然后你要从起点出发到达所有的节点(不能跳点)再回到 ...

  4. BZOJ 1232 USACO 2008 Nov. 安慰奶牛Cheer

    [题解] 对于每一条边,我们通过它需要花费的代价是边权的两倍加上这条边两个端点的点权. 我们把每条边的边权设为上述的值,然后跑一边最小生成树,再把答案加上最小的点权就好了. 1 #include< ...

  5. BZOJ1232 安慰奶牛cheer (洛谷2916)

    标签:并查集,最小生成树 tips:bzoj这题为权限题,可以去洛谷2916提交 Description Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N ( ...

  6. 算法训练 安慰奶牛(最小生成树)

    这道关于最小生成树的问题,起初让我百思不得解,所以就搁置了下来,今天才想着做做,一会儿我就跟你们说说我那可笑的理解.可笑的疑惑! 题目: 问题描述 Farmer John变得非常懒,他不想再继续维护供 ...

  7. 蓝桥杯:安慰奶牛(最小生成树)

    http://lx.lanqiao.cn/problem.page?gpid=T16 题意:要在一天之内访问所有的奶牛(路过一个点就必须停下来交谈),并且最后需要选择一个点睡上一觉(交谈多一次)所需的 ...

  8. 安慰奶牛 问题描述 Farmer John变得非常懒,他不想再继续维

    package ALGO;/*安慰奶牛 时间限制:1.0s 内存限制:256.0MB问题描述Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧场被连续 ...

  9. 安慰奶牛 (算法训练)

    算法训练 安慰奶牛   时间限制:1.0s   内存限制:256.0MB        问题描述 Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧 ...

最新文章

  1. visual studio 自动整理代码
  2. CentOS下添加Root权限用户‘超级用户’方法(xxx is not in the sudoers file.This incident will be reported.的解决方法)
  3. HTML5新特性基础学习笔记上
  4. mysql2008优化_SQL server 2008 数据库优化常用脚本
  5. WordPress企业主题:BDV适合于小型公司、企业,主要以产品类为主
  6. 沈航C语言上机实验题答案,大学大一c语言程序设计实验室上机题全部代码答案(实验报告).doc...
  7. Vue 学习笔记(3)路由的基本使用 结合 SpringBoot
  8. 听说你在学Python?来点PEP吧
  9. 毛子说PostgreSQL 需要实现多主
  10. qpsk相点 matlab,qpsk调制解调matlab仿真程序详解
  11. Tbase 源码 (二)
  12. php 处理eml,php读取eml实例、php解析eml、eml解析成网页
  13. 个性化定制软件安装包流程指导(按照步骤即可定制化安装流程)
  14. 数据智能让天下没有难做的营销——友盟+首席运营官吕志国 确认出席第七届GDMS!...
  15. MiKTeX + Texmaker ← 推荐的 LaTeX 学习环境
  16. 计算机慢的解决方法,电脑很卡反应很慢该如何处理【解决方法】
  17. excel快速拆分数据的方法
  18. Masonry的使用,动画,出现问题解决等
  19. 编程的工资一般是多少
  20. 常用的XMPP 客户端和服务端对比

热门文章

  1. bytes转16进制整数 python_Python 十进制转二进制、八进制、十六进制
  2. android 调出键盘表情_Android 软键盘和emoji表情切换方案,和微信几乎一样的体验...
  3. nodejs正则提取html,Nodejs正则表达式函数之match、test、exec、search、split、replace
  4. c语言自动按键脚本,C语言键盘控制走迷宫小游戏
  5. 【算法竞赛学习】资金流入流出预测-挑战Baseline_建模预测
  6. 数学--数论--最小公倍数+最大公约数
  7. spring mail 发送邮件
  8. 感知算法论文(八):Generalized Intersection over Union:A Metric and A Loss for Bounding Box Regression(2019)
  9. 机器学习实战(十一)利用PCA来简化数据
  10. FIR基本型仿真_03