惠民工程
Time Limit:1000MS Memory Limit:131072KB 64bit IO Format:%lld & %llu
Submit

Status
Description
市政府“惠民工程”的目标是在全市n个居民点间之架设煤气管道(但不一定有直接的管道相连,只要能间接通过管道可达即可)。很显然最多可架设 n(n-1)/2条管道,然而实际上要连通n个居民点只需架设n-1条管道就可以了。现请你编写程序,计算出该惠民工程需要的最低成本。

Input
测试输入包含若干测试用例。每个测试用例的第1行给出居民点数目M ( < =100 )、 评估的管道条数 N;随后的 N 行对应居民点间管道的成本,每行给出一对正整数,分别是两个居民点的编号,以及此两居民点间管道的成本(也是正整数)。为简单起见,居民点从1到M编号。

Output
对每个测试用例,在1行里输出全市管道畅通所需要的最低成本。若统计数据不足以保证畅通,则输出“?”。

Sample Input
3 3
1 2 1
1 3 2
2 3 4
3 1
2 3 2
Sample Output
3
?

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
#define MaxInt 100000
using namespace std;
struct typ{int q,z,w;
}eg[10005];
int fa[105];
int find(int x){int r=x;while(fa[r]!=r)r=fa[r];int i=x,t;while(fa[i]!=r){t=fa[i];fa[i]=r;i=t;}return r;
}
bool cmp(struct typ a,struct typ b){return a.w<b.w;
}
int main()
{freopen("in.txt","r",stdin);int m,n;while(~scanf("%d%d",&m,&n)){for(int i=0;i<n;i++){scanf("%d%d",&eg[i].q,&eg[i].z);scanf("%d",&eg[i].w);}for(int i=0;i<=m;i++) fa[i]=i;sort(eg,eg+n,cmp);int ans=0,tot=0,flag=0;for(int i=0;i<n;i++){int f1=find(eg[i].q);int f2=find(eg[i].z);if(f1!=f2){fa[f1]=f2;tot++;ans+=eg[i].w;if(tot==m-1) {flag=1;break;}}}if(flag) cout<<ans<<endl;else cout<<"?"<<endl;}return 0;
}

惠民工程(最小生成树裸题)相关推荐

  1. 惠民工程(最小生成树)

    惠民工程 Description  市政府"惠民工程"的目标是在全市n个居民点间之架设煤气管道(但不一定有直接的管道相连,只要能间接通过管道可达即可).很显然最多可架设 n(n-1 ...

  2. 惠民工程(2013中南大学研究生复试[最小生成树])

    惠民工程 CSU - 1264 时限: 1000MS   内存: 131072KB   64位IO格式: %lld & %llu 提交 状态 已开启划词翻译 问题描述点击打开链接 市政府&qu ...

  3. 1004: 惠民工程

    题目描述 市政府"惠民工程"的目标是在全市n个居民点间之架设煤气管道(但不一定有直接的管道相连,只要能间接通过管道可达即可).很显然最多可架设 n(n-1)/2条管道,然而实际上要 ...

  4. 【HDU - 1102】Constructing Roads (最小生成树裸题模板)

    题干: There are N villages, which are numbered from 1 to N, and you should build some roads such that ...

  5. 【OpenJ_Bailian - 1258】【POJ - 1258】Agri-Net (最小生成树裸题)

    题干: Farmer John has been elected mayor of his town! One of his campaign promises was to bring intern ...

  6. 1004: 惠民工程 (2013年中南大学研究生复试机试 )

    1004: 惠民工程 时间限制: 1 Sec  内存限制: 128 MB 提交: 404  解决: 81 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 市政府"惠民工程&q ...

  7. 2013年中南大学复试-惠民工程

    2013年中南大学复试机试题解 惠民工程 题目来源: http://pipioj.online/problem.php?id=1004. 题目描述 市政府"惠民工程"的目标是在全市 ...

  8. PIPIOJ 1004: 惠民工程

    题目链接: 传送门 题目描述: 市政府"惠民工程"的目标是在全市n个居民点间之架设煤气管道(但不一定有直接的管道相连,只要能间接通过管道可达即可).很显然最多可架设 n(n-1)/ ...

  9. CSP认证201412-4 最优灌溉[C++题解]:最小生成树裸题、Kruskal算法求最小生成树

    题目分析 来源:acwing 分析:这是一道最小生成树的裸题. 这里默写Kruskal求最小生成树的最小费用的模板. 最小生成树模板请参考笔者的另一篇博文: 最小生成树板子-AcWing 859. K ...

最新文章

  1. 学习电脑软件_推荐5款从零基础学习打字的电脑软件
  2. 《LeetCode力扣练习》第226题 翻转二叉树 Java
  3. 五丶阿东安装部署教程+青龙对接阿东及傻妞实现自动登录
  4. python安装venv_Python创建virtualenv(虚拟环境)方法及安装Ubuntu
  5. STM32之SDIO原理
  6. Jzzhu and Chocolate(CF-449A)
  7. HTML5表单提交和PHP环境搭建
  8. MVC 自定义属性验证登录
  9. 在Spark上运行WordCount程序
  10. imewlconverter 制作Rime词库
  11. 工商银行B2C支付接口JAVA版(未完)
  12. python+django+mysql疫苗预约系统毕业设计毕设开题报告
  13. 实验中应该遵循的几个原则
  14. 用遗传算法解决无线传感器轮值问题(Duty Cycle)
  15. 开发环境 -- 在linux中写一个脚本拷机
  16. 如何快速开发一个自己的微信小程序
  17. C语言已知三边求三角形的面积
  18. Phonetic symbol 双元音 -- ɪə
  19. 动力煤全年跌幅约148[中煤远大智慧煤炭产业平台]
  20. html基础 vscode写代码

热门文章

  1. Java项目:SSM二手汽车交易商城网站管理系统
  2. Jupyter Notebook 自动补全、智能提示
  3. 仿站高手是怎么练成的 分析仿站必备知识总结
  4. 【经验总结】“投”——如何寻找适合投递的期刊或者会议
  5. nr技术之---MIMO
  6. 写给所有默默支持我们这些IT人的另一半------携手看夕阳
  7. Ubuntu下安装UE和AirSim并使用UE4.27编译C++项目
  8. 关于生成函数和二项式定理
  9. java enum compare_Java中枚举类型
  10. Python 文字小游戏