传送门     练习

只是一个最小生成树的水题,拿来练练模板

AC代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
#define maxn 10001
struct hh
{
int x,y,z;
}t[maxn];
int n,m,fa[maxn],ans=,bj,jl[maxn],top=;
bool cmp(const hh&x,const hh&y)
{
return x.z<y.z;
}
inline int find(int u)
{
if(fa[u]==u) return u;
fa[u]=find(fa[u]);
return u=fa[u];
}
inline void kruskal()
{
int f1,f2,k,i;
k=;
for(i=;i<=n;i++) fa[i]=i;//初始化
for(i=;i<=m;i++)
{
f1=find(t[i].x);
f2=find(t[i].y);
if(f1!=f2)
{
ans=ans+t[i].z;
jl[++top]=t[i].z;
fa[f1]=f2;
k++;
if(k==n-) break;
}
}
}
int main()
{
cin>>n>>m;
ans=;bj=;
for(int i=;i<=m;i++)
{
cin>>t[i].x>>t[i].y>>t[i].z;
}
sort(t+,t+m+,cmp);
kruskal();
sort(jl+,jl+top);
cout<<jl[top]<<endl;
return ;
}

再附上最小生成树纯模板:

#include<bits/stdc++.h>
using namespace std;
const int maxn=;
struct edge{int x,y,z;}a[maxn];//定义数组(好用的结构体)
int n,m,fa[maxn],ans=,bj;
bool cmp(const edge&x,const edge&y)//重定义sort函数(背模板吧。。)
{
return x.z<y.z;
}
int find(int u)//查找祖先
{
if(fa[u]==u) return fa[u];
fa[u]=find(fa[u]);
return fa[u];
}
void kruskal()//kruskal的核心程序
{
int f1,f2,k,i;
k=;
for(i=;i<=n;i++) fa[i]=i;
for(i=;i<=m;i++)
{
f1=find(a[i].x);
f2=find(a[i].y);//并查集基本操作
if(f1!=f2)//两点之间没有边(有边就不管)
{
ans=ans+a[i].z;
fa[f1]=f2;
k++;//搭边并记录
if(k==n-) break;//图刚好为最小生成树,退出
}
}
if(k<n-){cout<<"orz"<<endl;bj=;return;}//边数达不到最小生成树要求
}
int main()
{
cin>>n>>m;//输入点数,边数
ans=;bj=;//ans记录总的边权长,bj判断能否组成最小生成树
for(int i=;i<=m;i++)
{
cin>>a[i].x>>a[i].y>>a[i].z;//输入点1,点2,并赋上权值
}
sort(a+,a+m+,cmp);//从小到大排序
kruskal();//建树
if(bj) cout<<ans<<endl;//有最小生成树就输出ans
return ;
}

P1547 Out of Hay的更多相关文章

  1. 洛谷——P1547 Out of Hay

    P1547 Out of Hay 题目背景 奶牛爱干草 题目描述 Bessie 计划调查N (2 <= N <= 2,000)个农场的干草情况,它从1号农场出发.农场之间总共有M (1 & ...

  2. 洛谷P1547 Out of Hay

    题目背景 奶牛爱干草 题目描述 Bessie 计划调查N (2 <= N <= 2,000)个农场的干草情况,它从1号农场出发.农场之间总共有M (1 <= M <= 10,0 ...

  3. 洛谷 P1547 Out of Hay (最小生成树)

    嗯... 题目链接:https://www.luogu.org/problemnew/show/P1547 思路: 嗯...既然题中已经说了是最小生成树,那么是需要在最小生成树的模板上稍作修改即可.要 ...

  4. P1547 Out of Hay 洛谷

    https://www.luogu.org/problem/show?pid=1547 题目背景 奶牛爱干草 题目描述 Bessie 计划调查N (2 <= N <= 2,000)个农场的 ...

  5. [总结]最小生成树之Kruskal算法

    目录 一.最小生成树的相关知识 1. 树的性质 2. 生成树 3. 最小生成树 4. 最小生成树的性质 二.Kruskal算法求最小生成树 1. 核心思想 2. 具体流程 3. 图示 4. 代码实施 ...

  6. 瓶颈生成树与最小生成树 POJ 2395 Out of Hay

    百度百科:瓶颈生成树 瓶颈生成树 :无向图G的一颗瓶颈生成树是这样的一颗生成树,它最大的边权值在G的所有生成树中是最小的.瓶颈生成树的值为T中最大权值边的权. 无向图的最小生成树一定是瓶颈生成树,但瓶 ...

  7. 洛谷P2925 [USACO08DEC]干草出售Hay For Sale

    题目描述 Farmer John suffered a terrible loss when giant Australian cockroaches ate the entirety of his ...

  8. [BZOJ1618][Usaco2008 Nov]Buying Hay 购买干草

    [BZOJ1618][Usaco2008 Nov]Buying Hay 购买干草 试题描述 约翰的干草库存已经告罄,他打算为奶牛们采购H(1≤H≤50000)磅干草. 他知道N(1≤N≤100)个干草 ...

  9. Out of Hay

    Out of Hay Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13094 Accepted: 5078 Descripti ...

随机推荐

  1. What’s WOYO PDR-007 Paintless Dent Repair Heat Induction?

    when you car body with dent, which tools can fixing this problem? is there a device which with the c ...

  2. 金九银十跳槽季,程序员面试点解析之Java专场

    前言 近年来Java工程师这个岗位炙手可热,市场需求大,学习Java的人也越来越多,所以IT企业与求职者的选择都比较多,那么IT企业在面试时都会提哪些问题呢.下面为大家分享 Java高级工程师面试阿里 ...

  3. 在MyEclipse中使用javadocAPI文档

    开始啦 1.打开MyEclipse,选中要导出的项目,右击Exprot弹出窗口,选择java----javadoc点击next到下一界面. 2.选出要导出的项目或要添加的项目,在browse中选择路径 ...

  4. 线程池demo

    package test; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callabl ...

  5. 使用Ajax出现302 Moved Temporarily

    现象:在用ajax发送请求时,各种参数都对,地址也对,一直进error返回parse error. 使用浏览器发现ajax请求的header的响应码处:302 Moved Temporarily 百度 ...

  6. Baidu WebFE(FEX)团队开发 的 文件上传插件 WebUploader

    1.webUploader官网下载地址:http://fex.baidu.com/webuploader/ 直接下载代码,运行examples目录文件即可 2.webUploader上传demo:ht ...

  7. Golang字符串函数认识(二)

    package main import ( "fmt" "strings" ) func main(){ //返回字符在指定字符串中最后一次出现的位置 last ...

  8. 模拟window系统的“回收站”

    若要模拟window系统的“回收站”功能,具体的要求如下: 对于列表中的图片,可以通过拖动或单击“删除”的链接,以动画的方式移至“回收站”. 对于“回收站的图片”,可以通过拖动和单击“还原”的链接,以 ...

  9. 解决c1xx fatal error C1083 Cannot open source file

    在项目开发过程中,遇到一个问题,一个工程B导入另外一个工程A的生产代码,出现这个错误,最后查阅资料发现是文件路径太深,导致文件路径字符超过了217字符. 写了一个测试Demo来验证: 一.新建Win3 ...

  10. C语言实现随机生成0~100的数

    #include <iostream> #include <time.h> int main() { srand((unsigned)time(NULL));//srand() ...