洛谷 P2916题解 【[USACO08NOV]Cheering up the Cow G】
所需前置知识:邴茶吉
我个人觉得把所有东西写成函数会更方便
大多数简单的生成树都要写这些东西:
建结构体——>给结构体写比较函数
一模一样的并查集模板
重点的kruskal分为以下几步:
1.循环看始点和重点是否为同一连通块
2.否——接入
f[u]=v
3.计数并判断是否形成了最小生成树
粘一个正经描述
当然本题不可能完全是个模板,我们看题之后会发现要重复计算忽悠时间,并在输出时多算一个始点
之后看代码
#include<bits/stdc++.h>
using namespace std;
int f[100005],u,v,ans,n,m,total,t[100005];
struct xxx{//结构体部分,定义道路的始点,终点和忽悠时间…… int start,end;long long l;
}road[100005];
int find(int x){//邴茶吉模板 if(f[x]==x)return x;elsef[x]=find(f[x]);return f[x];
}
bool cmp(xxx a,xxx b){//自定义比较函数,sort要用 return a.l<b.l;
}
void kruskal(){//kruskalfor(int i=1;i<=m;i++){u=find(road[i].start);v=find(road[i].end);if(u==v)continue;//两点属于同一个连通块,直接进入下个情况 ans+=road[i].l;f[u]=v;//不在同一个连通块,就接入连通块 total++;if(total==n-1){//形成了最小生成树 break; }}
}
int main(){cin>>n>>m;for(int i=1;i<=n;i++){f[i]=i;}for(int i=1;i<=n;i++){cin>>t[i];}for(int i=1;i<=m;i++){cin>>road[i].start>>road[i].end>>road[i].l;road[i].l=road[i].l*2+t[road[i].start]+t[road[i].end];//题中描述的道路要忽悠两遍,并加上开始和结束的点 }sort(road+1,road+1+m,cmp);kruskal();sort(t+1,t+1+n);//像我这种懒得处理的可以直接排序找出发点cout<<ans+t[1];//记得加上 return 0;
}
洛谷 P2916题解 【[USACO08NOV]Cheering up the Cow G】相关推荐
- P2916 [USACO08NOV]Cheering up the Cow G 题解
前置知识:最小生成树算法(Kruskal/Prim) 例题 算法分析: 这一道题中给出一个无向图,求从任意一点开始经过每一点的最短路径. 既然要经过每一个点,还要求最短路径,算法就是最小生成树了. 我 ...
- 洛谷p1598题解记录
洛谷p1598题解记录 对这道题来说,输入几行数据其实无所谓,判定时是按照是否输入EOF来决定输入是否结束的. 代码 #include <stdio.h>char numberCount[ ...
- 信息学奥赛一本通 1343:【例4-2】牛的旅行 | 洛谷 P1522 [USACO2.4] 牛的旅行 Cow Tours
[题目链接] ybt 1343:[例4-2]牛的旅行 洛谷 P1522 [USACO2.4] 牛的旅行 Cow Tours [题目考点] 1. 图论 最短路径 Floyd算法 Floyd算法时间复杂度 ...
- 洛谷 2953 [USACO09OPEN]牛的数字游戏Cow Digit Game
洛谷 2953 [USACO09OPEN]牛的数字游戏Cow Digit Game 题目描述 Bessie is playing a number game against Farmer John, ...
- 洛谷CF982B 题解
谢谢管理员大大给过 优先队列速通大法 hello!我又来水体了,不过嘛,相对来说这道题普及-不算水. 那我们就来研究研究吧. 先看题目 题目传送门 F1:0分暴力 一开始我也是闲的没事想要弄一下暴力做 ...
- P3387 【模板】缩点 洛谷 java题解 连通图+拓扑排序
传送门: P3387 [模板]缩点 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P3387 问题分析 首先为了节省 ...
- 洛谷P1001题解--zhengjun
题目描述 输入两个整数 a,ba,ba,b,输出它们的和(∣a∣,∣b∣≤109|a|,|b |\le 10^9∣a∣,∣b∣≤109). 注意 PascalPascalPascal 使用intege ...
- 洛谷P1914题解——(本地测试AC但是交题爆零全WA)使用getchar();
本题最大的坑在于: windows环境下的换行符为\r\n,linux环境的换行符为\n. 我们再来看看洛谷的部分OJ判题机数据和机制 常见"我在本地/xxOJ AC了.洛谷却不过" ...
- 洛谷·bzoj·伟大的奶牛聚集Great Cow Gather
初见安~~这里是传送门:洛谷P2986 & bzoj P1827 题目描述 Bessie is planning the annual Great Cow Gathering for cows ...
最新文章
- 命名分组(?name....)
- 利用ES6进行Promise封装总结
- 怎样轻松做到SD卡照片数据恢复
- margin百分比,重叠和auto
- Data for set COM_LOCAT_ADDR may only be changed in the original system CRQ_100
- Vue+axios+Node+express实现文件上传(用户头像上传)
- 43.连接 Internet
- canvas画笔功能 Signature Pad
- linux安装fdfs
- 电容器原理和计算公式及电容单位换算
- 如何调整基准电压提高ADC精度
- itools 安装 ipa
- Mysql开启局域网连接
- LaTeX:使用bib插入文献
- JS严格模式(use strict)
- 2017年6月英语 CET 四六级考试查询准考证方法
- VMware虚拟机的使用和克隆
- 测试用例设计——WEB通用测试用例(转)
- 嵌入式学习(3)ADC、DMA、通信方式
- Unity 使用教程 之 Unity3D常用的知识点归纳
热门文章
- 计算机组成与系统结构期末复习 第二章 2.2
- LINUX学习之进程进阶
- Centos删除乱码文件或文件夹
- 今年48岁社保一直没有交过,现在单位要求一定要买,可是就差两年就到退休,该怎么办?
- 【100题】给定入栈序列,判断一个序列是否可能为输出序列
- Python cmd库的使用
- MySQL原理与学习
- 解析中小学生的 AI 思维学习模型
- L​I​N​U​X​环​境​中​部​署​J​A​V​A​项​目​步​骤
- 《计算机系统与维护》— CPU的主要技术指标