USACO 2008 November Gold Cheering up the Cows /// MST oj24381
题目大意:
输入n,p;n个点,p条路
接下来n行输入c[];在各个点需要花费的时间
接下来p行输入u,v,w;u点到v点的路需要花费时间w
求经过所有点且最后回到起点的最少花费时间
https://blog.csdn.net/HY_VFenux/article/details/68954199
将每条边的权值存为 路径花费*2+两端点花费
Kruscal求MST 最后加上开始位于起点的花费 即各个点中最少花费的一个
#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
#define N 10005
#define P 100005
using namespace std;
int n,m,a[N],root[N];
struct NODE {
int n,t,c;
bool operator <(const NODE& b) const{
return c<b.c;
}
}no[P];
int getroot(int man)
{
if(root[man]==man) return man;
return root[man]=getroot(root[man]);
}
int main()
{
scanf("%d%d",&n,&m);
int mina=INF;
for(int i=;i<=n;i++) {
scanf("%d",&a[i]);
root[i]=i; mina=min(mina,a[i]);
}
int len=;
while(m--) {
int u,v,w; scanf("%d%d%d",&u,&v,&w);
no[len++]={u,v,*w+a[u]+a[v]};
}
sort(no,no+len);
int cnt=, ans=;
for(int i=;i<len;i++) {
int u=no[i].n, v=no[i].t, w=no[i].c;
int ru=getroot(u), rv=getroot(v);
if(ru!=rv){
root[rv]=ru; cnt++; ans+=w;
}//printf("%d\n",ans);
if(cnt==n-) break;
}
printf("%d\n",ans+mina); return ;
}
USACO 2008 November Gold Cheering up the Cows /// MST oj24381的更多相关文章
- USACO 2006 November Gold Corn Fields
USACO 2006 November Gold Corn Fields 题目描述: Farmer John has purchased a lush new rectangular pasture ...
- USACO 2006 November Gold
POJ 3253 Fence Repair STL堆操作 我想说,STL里堆是我目前见到最蛋疼的操作. #include <cstdio> #include <cstring> ...
- 【USACO 2006 November Gold】Corn Fields
[题目链接] 点击打开链接 [算法] 状压DP [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 12 #def ...
- USACO 2008 Nov Gold 3.Light Switching 线段树
Code: #include<cstdio> #include<algorithm> #include<cstring> using namespace std; ...
- USACO 2006 November Gold Fence Repair /// 贪心(有意思)(优先队列) oj23940
题目大意: 输入N ( 1 ≤ N ≤ 20,000 ) :将一块木板分为n块 每次切割木板的开销为这块木板的长度,即将长度为21的木板分为13和8,则开销为21 接下来n行描述每块木板要求的长度Li ...
- USACO 2006 November Gold Corn Fields /// 状压 oj23941
题目大意: 输入n m 接下来n行m列 0表示不能种玉米 1表示能 要求种玉米位置的上下左右四连通区域不能种玉米 输出方案数 Sample Input 2 31 1 10 1 0 Sample Out ...
- [USACO 2018 Feb Gold] Tutorial
Link: USACO 2018 Feb Gold 传送门 A: $dp[i][j][k]$表示前$i$个中有$j$个0且末位为$k$的最优解 状态数$O(n^3)$ #include <bit ...
- [USACO 2018 Jan Gold] Tutorial
Link: USACO 2018 Jan Gold 传送门 A: 对于不同的$k$,发现限制就是小于$k$的边不能走 那么此时的答案就是由大于等于$k$的边形成的图中$v$所在的连通块除去$v$的大小 ...
- [USACO 2017 Dec Gold] Tutorial
Link: USACO 2017 Dec Gold 传送门 A: 为了保证复杂度明显是从终结点往回退 结果一开始全在想优化建边$dfs$……其实可以不用建边直接$multiset$找可行边跑$bfs$ ...
随机推荐
- Delphi Format函数功能及用法详解
DELPHI中Format函数功能及用法详解 DELPHI中Format函数功能及用法详解function Format(const Format: string; const Args: array ...
- I/O与NIO(异步I/O)
1.原来的I/O库与NIO最重要的区别是数据打包和传输方式的不同,原来的I/O以流的方式处理数据,而NIO以块的方式处理数据. 面向流的I/O系统一次一个字节地处理数据.一个输入流产生一个字节的数据, ...
- sqlalchemy session
Cookie cookie是浏览器保存在用户电脑上的一小段文本,用来保存用户在网站上的必要的信息.Web页面或服务器告诉浏览器按照一定的规范存储这些信息,并且在以后的所有请求中,这些信息就会自动加在h ...
- Api:temple
ylbtech-Api: 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 作者:ylbtech出处:http://ylbtech.cnb ...
- 查看framework版本
cd %WINDIR%\Microsoft.NET\Framework\v4.0.30319 MSBuild /version
- python 18 函数基础二
转自 http://www.cnblogs.com/BeginMan/p/3173328.html 一.装饰器(decorators) 装饰器的语法以@开头,接着是装饰器函数的名字.可选参数. 紧跟装 ...
- 使用R语言 SDK调取tushare数据
安装Tushare 打开RStudio,在控制台输入命令: > install.packages('Tushare') Tushare的R包需要依赖httr.tidyverse.forecast ...
- 【csp】2017-9
1.打酱油 题目: 题意:如上. 题解:经典问题.看代码吧.qwq 代码: #include<iostream> #include<cstdio> #include<al ...
- 唯一id
package com.debug.kill.server.utils; /** * Created by Administrator on 2019/6/20. */ import org.apac ...
- c_ 数据结构_图_邻接矩阵
程序主要实现了图的深度遍历和广度遍历. #include <stdio.h> #include <stdlib.h> #include <string.h> #de ...