题解 P2916 【[USACO08NOV]安慰奶牛Cheering up the Cow】
解题报告:
求经过所有节点所花费的最小代价.
考虑最小生成树求解.
来看一下题目:
1.当他走访完所有的奶牛之后,还要回到他的出发地.
2.注意约翰在出发和回去的时候,都要和出发地的奶牛谈一次话.
先看一下这一句:
注意约翰在出发和回去的时候,都要和出发地的奶牛谈一次话.
那么是不是就是每条边都是被遍历两次呢 并且每一次计算的时候都要加上起点的权值
举个例子说明一下:
有一条边 a->b 那么假定我们从a点出发再回到a点 先从a点出发 加上a点权值和边权 在从b回到a 加上b点权值和边权 那么对于每一条边 他的边权是不是就等于边权$*2$+起点的终点的边权呢?
那么我们就把每一条边的边权更新一下
a[i].z=z*2+t[x]+t[y];
再来注意一下另外一句话:
当他走访完所有的奶牛之后,还要回到他的出发地.
代表着我们还要加上出发点的权值 对于一个给定的图 它的最小生成树的是一定的 那么我们只要加上最小的出发点即可
代码如下:
#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,z,ans=0x3f,px,py,f[100005],t[100005];
struct p{int x,y,z;
}a[200005];
bool cmp(p a,p b){return a.z<b.z;
}
int find(int x){if (x==f[x]) return x;return f[x]=find(f[x]);
}
int main(){scanf("%d%d",&n,&m);for (int i=1;i<=n;i++) f[i]=i;for (int i=1;i<=n;i++) {scanf("%d",&t[i]);ans=min(ans,t[i]);}for (int i=1;i<=m;i++){scanf("%d%d%d",&x,&y,&z);a[i].x=x;a[i].y=y;a[i].z=z*2+t[x]+t[y]; }sort(a+1,a+m+1,cmp);for (int i=1;i<=m;i++){px=find(a[i].x);py=find(a[i].y);if (px==py) continue;f[px]=py;ans+=a[i].z;}printf("%d\n",ans);return 0;
}
转载于:https://www.cnblogs.com/Hiraeth-dh/p/10693407.html
题解 P2916 【[USACO08NOV]安慰奶牛Cheering up the Cow】相关推荐
- P2916 [USACO08NOV]安慰奶牛Cheering up the Cow
题目 P2916 [USACO08NOV]安慰奶牛Cheering up the Cow 分析 这题开始不是很懂它的意思,看了题解才懂的.举个例子:有一条边 a->b 那么假定我们从a点出发再回 ...
- 【题解】P2916 [USACO08NOV]安慰奶牛Cheering up the Cow-C++
原题传送门 这道题用最小生成树来完成,我选用的是kruskal(克鲁斯卡尔)来完成. 这道题目在克鲁斯卡尔模板的基础上,有变动的地方只有2处: 1.因为必须从一个点出发,而最小生成树最后会让所有点都连 ...
- bzoj1232[Usaco2008Nov]安慰奶牛cheer*
bzoj1232[Usaco2008Nov]安慰奶牛cheer 题意: 给出n个节点的带权图,第i个节点ci.现在你要在这个图中选出一棵树和一个起点,然后你要从起点出发到达所有的节点(不能跳点)再回到 ...
- 1232: [Usaco2008Nov]安慰奶牛cheer
1232: [Usaco2008Nov]安慰奶牛cheer Time Limit: 10 Sec Memory Limit: 162 MB Submit: 612 Solved: 431 [Sub ...
- 蓝桥杯-安慰奶牛(java)
算法训练 安慰奶牛 时间限制:1.0s 内存限制:256.0MB 问题描述 Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧场被连续地编号为 ...
- 安慰奶牛 问题描述 Farmer John变得非常懒,他不想再继续维
package ALGO;/*安慰奶牛 时间限制:1.0s 内存限制:256.0MB问题描述Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧场被连续 ...
- C语言题目奶牛牧场,C语言算法训练:安慰奶牛
C语言算法训练:安慰奶牛 导语:FJ变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧场被连续地编号为1到N.下面我们来看看C语言算法训练:安慰奶牛. 每一个牧场都是一个奶 ...
- 安慰奶牛 (算法训练)
算法训练 安慰奶牛 时间限制:1.0s 内存限制:256.0MB 问题描述 Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧 ...
- 讲解 算法训练 安慰奶牛
首先谈谈这道题的基本思路吧,题目中谈到要将P条道路尽可能的去减少,并保证个点之间是可达的,同时要求其最小时间. 很明显的去告诉我们,用最小生成树算法. 最小生成树算法有两种, 1.克鲁斯卡尔算法 2. ...
- P2916 [USACO08NOV]Cheering up the Cow G 题解
前置知识:最小生成树算法(Kruskal/Prim) 例题 算法分析: 这一道题中给出一个无向图,求从任意一点开始经过每一点的最短路径. 既然要经过每一个点,还要求最短路径,算法就是最小生成树了. 我 ...
最新文章
- Spring-JdbcTemplate基本使用
- 把c++语言转换为go的工具_V,新编程语言来袭!与Go类似,跟C一样快
- webService学习6:解析组件 's:schema' 时出错。在该组件中检测到 's:schem
- Android学习笔记---监听ContentProvider(内容共享者)中数据的变化
- AcWing基础算法课Level-2 第五讲 动态规划
- .html() 与.text() 获取值、取值 区别
- nginx root与alias区别
- 可能最详细的教程,新手如何获取Zcash钱包(ZEC钱包)官方客户端地址的方法
- 红警2的经验和秘籍及不是秘笈的秘笈(4)
- Xcode5 symbolicatecrash文件路径
- Flink SQL Client初探
- 计算机itunes无法安装,Win7电脑无法安装itunes怎么办 win7安装itunes失败的解决方法...
- 零线断了为什么会带电, 使验电笔氖管发光
- 交换机接口的三种模式
- 针对复杂问题的知识图谱问答最新进展
- Personalized Web Search总结
- 计算机台式机硬盘,台式电脑硬盘和笔记本硬盘有什么区别【详解】
- 容器 服务:metrics-server 安装探索
- Xilinx 7A 开发流程——工程模式 ARTY XC7A35T
- 交叉编译ffmpeg:aac x264 x265
热门文章
- linux单引号作用,单引号 双引号如何输入(Linux运维:单引号与双引号的使用)...
- 港科夜闻丨香港科大教授权龙:三维重建才是计算机视觉的灵魂
- SQLI-LABS——Page-2 Advanced Injections Less21~Less37
- 开发一个类似于 xxx 的应用有多难?
- tail关键字查询日志
- 【Excle】在方框内打勾
- 查看计算机真实用户名(username)
- 计算机用户名怎么注册,微软账号怎么注册 Microsoft帐户注册使用教程
- 组织能力:企业成败的关键(组织能力杨三角系列一)
- 远程服务器显示登录密码,远程服务器怎么知道登录密码