传送门啦

一个裸的最小生成树,输出 $ No Answer $ 的情况只有 $ k < n $ 的时候。

开始令 $ num =n $ ,如果 $ num = k $ ,直接输出 $ 0 $ ,最后就是最小生成树操作了,退出的条件就是 $ num = k $ 。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 1005;
const int maxm = 10005; inline int read(){char ch = getchar();int f = 1 , x = 0;while(ch > '9' || ch < '0'){if(ch == '-')f = -1;ch = getchar();}while(ch >= '0' && ch <= '9'){x = (x << 1) + (x << 3) + ch - '0';ch = getchar();}return x * f;} int n,m,k,x,y,z;
int head[maxn],tot;
int f[maxn],ans; struct Edge{
int from,to,val,next;
}edge[maxm << 1]; inline void add(int u,int v,int w){
edge[++tot].from = u;
edge[tot].to = v;
edge[tot].next = head[u];
edge[tot].val = w;
head[u] = tot;
} inline int find(int x){
if(x != f[x]) f[x] = find(f[x]);
return f[x];
} inline bool cmp(Edge a , Edge b){
return a.val < b.val;
} inline void init(){
for(int i=1;i<=n;i++)
f[i] = i;
} int main(){
n = read(); m = read(); k = read();
if(k > n) {
printf("No Answer");
return 0;
}
for(int i=1;i<=m;i++){
x = read(); y = read(); z = read();
add(x , y , z);
}
init();
sort(edge + 1 , edge + 1 + m , cmp);
int num = n;
if(num == k){
printf("0\n");
return 0;
}
for(int i=1;i<=m;i++){
int f1 = find(edge[i].from);
int f2 = find(edge[i].to);
if(f1 != f2){
f[f1] = f2;
num--;
ans += edge[i].val;
}
if(num == k) break;
}
printf("%d",ans);
return 0;
}

最新文章

  1. android Acitivity之间的几种传值方式(^_^)
  2. SPOJ HIGH Highways ——Matrix-Tree定理 高斯消元
  3. 根目录97 &lt;input file&gt;标签,把图片上传到服务器(跟增删改查一起实现)
  4. 关于Domino数据库的软删除
  5. Angularjs之基本概念梳理(一)
  6. Codeforces Round #372 (Div. 2) B
  7. 【面试虐菜】—— Apache知识整理
  8. An NIO.2 primer--reference
  9. Windows搭建Sublime Text 3 + Go开发环境
  10. poj2013---二维数组指针使用
  11. AngularJS进阶(十一)AngularJS实现表格数据的编辑,更新和删除
  12. springmvc复习笔记----springmvc姓名年龄例子:RequestParam 试水
  13. python:从迭代器,到生成器,再到协程的示例代码
  14. 主席树||可持久化线段树||BZOJ 3524: [Poi2014]Couriers||BZOJ 2223: [Coci 2009]PATULJCI||Luogu P3567 [POI2014]KUR-Couriers
  15. RN animated组动画
  16. centos7安装配置tomcat
  17. 编译安装MySQL-5.7.13
  18. 8 -- 深入使用Spring -- 4...3 AOP的基本概念
  19. 【Unity笔记】角色的移动方法
  20. Openflow Plugin学习笔记2

热门文章

  1. debian7编译安装tengine添加lua和ldap模块
  2. 简单版AC自动机
  3. Redis学习基础二
  4. bzoj 1503
  5. python【内置函数&amp;自定义函数】
  6. Hadoop基础原理
  7. Java基础-面向对象第二特征之继承(Inheritance)
  8. 视音频数据处理入门:H.264视频码流解析
  9. 51nod 1181 质数中的质数
  10. JQuery的选择器对控件ID含有特殊字符的解决方法-涨姿势了!