题目链接:https://www.luogu.org/problemnew/show/P1195

嗯~我是被题目背景吸引到才做的,想吃棉花糖啦!

话说回来,这道题其实很容易就能想明白,k棵最小生成树。

我们用kruskal的思想,每次连接最小代价的边。假设一开始有n棵树,那么我们每次连接两朵云彩就会减少一棵树。

我们设cnt为生成树的数量,每次连接就会是cnt-1-1-1-1....直到cnt == k,就好啦~

 #include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn = ; int n,m,k,fa[maxn],cnt,ans = ; int find(int x)
{
return fa[x] == x?x:fa[x] = find(fa[x]);
} struct edge{
int u,v,w;
}e[maxn]; int cmp(edge a,edge b)
{
return a.w<b.w;
} int main()
{
scanf("%d%d%d",&n,&m,&k); for(int i = ; i <= n; i++)
{
fa[i] = i;
} for(int i = ; i <= m; i++)
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
e[i].u = x;
e[i].v = y;
e[i].w = z;
}
cnt = n;
sort(e+,e++m,cmp); for(int i = ; i <= m; i++)
{
if(cnt <= k) break; int x = find(e[i].u);
int y = find(e[i].v);
if(x!=y)
{
fa[x] = y;
ans += e[i].w;
cnt--;
} } if(cnt == k)
{
printf("%d",ans);
return ;
}
else
{
printf("No Answer");
return ;
}
}

【luogu P1195 口袋的天空】 题解的更多相关文章

  1. luogu P1195 口袋的天空

    题目背景 小杉坐在教室里,透过口袋一样的窗户看口袋一样的天空. 有很多云飘在那里,看起来很漂亮,小杉想摘下那样美的几朵云,做成棉花糖. 题目描述 给你云朵的个数N,再给你M个关系,表示哪些云朵可以连在 ...

  2. P1195 口袋的天空

    P1195 口袋的天空 题目背景 小杉坐在教室里,透过口袋一样的窗户看口袋一样的天空. 有很多云飘在那里,看起来很漂亮,小杉想摘下那样美的几朵云,做成棉花糖. 题目描述 给你云朵的个数N,再给你M个关 ...

  3. 洛谷P1195 口袋的天空

    口袋的天空 327通过 749提交 题目提供者该用户不存在 标签云端 难度普及+/提高 时空限制1s / 128MB 提交  讨论  题解 最新讨论更多讨论 暂时没有讨论 题目背景 小杉坐在教室里,透 ...

  4. 洛谷 P1195 口袋的天空(最小生成树)

    嗯... 题目链接:https://www.luogu.org/problemnew/show/P1195 思路: 首先可以判断这道题是用最小生成树来做的,然后在将其合并时用ans记录一下它的总消耗, ...

  5. P1195 口袋的天空 洛谷

    https://www.luogu.org/problem/show?pid=1195 题目背景 小杉坐在教室里,透过口袋一样的窗户看口袋一样的天空. 有很多云飘在那里,看起来很漂亮,小杉想摘下那样美 ...

  6. 洛谷 P1195 口袋的天空

    题目背景 小杉坐在教室里,透过口袋一样的窗户看口袋一样的天空. 有很多云飘在那里,看起来很漂亮,小杉想摘下那样美的几朵云,做成棉花糖. 题目描述 给你云朵的个数N,再给你M个关系,表示哪些云朵可以连在 ...

  7. 【洛谷】【最小生成树】P1195 口袋的天空

    [题目背景:] 小杉坐在教室里,透过口袋一样的窗户看口袋一样的天空. 有很多云飘在那里,看起来很漂亮,小杉想摘下那样美的几朵云,做成棉花糖. [题目描述:] 给你云朵的个数N,再给你M个关系,表示哪些 ...

  8. 洛谷P1195口袋的天空

    传送门啦 一个裸的最小生成树,输出 $ No Answer $ 的情况只有 $ k < n $ 的时候. 开始令 $ num =n $ ,如果 $ num = k $ ,直接输出 $ 0 $ , ...

  9. VIJOS-P1234 口袋的天空

    洛谷 P1195 口袋的天空 https://www.luogu.org/problemnew/show/P1195 JDOJ 1374: VIJOS-P1234 口袋的天空 https://neoo ...

随机推荐

  1. 案例48-crm练习利用spring管理service和dao层的对象

    1 导包 2 将 Service 对象以及 Dao 对象配置到 spring 容器 <?xml version="1.0" encoding="UTF-8" ...

  2. IBM Rational Appscan Part 1

    By Rohit T|July 23rd, 2012 http://resources.infosecinstitute.com/ibm-rational-appscan/ IBM Rational ...

  3. 【卷土重来之C#学习笔记】(三) 类型 存储和变量

    .c#程序是一组类型声明 ※C#程序或DLL的源代码是一组一种或多种类型声明 ※对于可执行程序,类型声明必须有一个包含Main方法类 ※命名空间是一种把相关的类型声明分组并命名的方法.既然程序是一组相 ...

  4. VHDL

    数字逻辑VHDL 信号与变量 signal是全局的,在整个结构体中都有效,它的赋值是在进程结束, 也就是最后的赋值是有效的. variable是局部的,它的赋值是立即生效的. 一般变量是在进程的说明部 ...

  5. (四)selenium打开和关闭浏览器

    一.Selenium简介 Selenium3.0主要变更特性: ①移除seleniumRC ②FireFox和Safari推出了自己的driver(geckodriver 和 Safaridriver ...

  6. gcc工作原理

    gcc工作流程 1.预处理 --E 1.宏替换 2.头文件展开 3.注释去掉 4.xxx.c -> xxx.i 2.编译 --S 1.xxx.i -> xxx.s 2.汇编文件 3.汇编 ...

  7. 【Android】5.0 第一个工程学习——应用名称和图标修改、增加Buton控件、Toast信息提示

    1.0 搞了很多天,eclipse只能开发Android6.0以前的版本,可能是因为谷歌不再针对eclipse更新了,在虚拟机Android6.0以上版本都无法构建,所以转到Android Studi ...

  8. iDempiere 使用指南 库存出入库研究

    Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...

  9. LeAndroid招聘汇总

    招聘Android通讯开发经理 工作地点:北京-朝阳区 工作经验:3-5年 薪资范围:¥ 面议 学历要求:本科以上 职责描述1.负责设计指导开发和优化Android网络通讯相关功能:2.负责设计指导开 ...

  10. jquery mobile 自定义图标

    Jquery Mobile框架包含了一组最常用的移动应用程序所需的图标,为了减少下载的大小,Jquery Mobile包含的是的白色的图标sprite图片,并自动在图标后添加一个半透明的黑圈以确保在任 ...