省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。

Input

测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 N、村庄数目M ( < 100 );随后的 N 
行对应村庄间道路的成本,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间道路的成本(也是正整数)。为简单起见,村庄从1到M编号。当N为0时,全部输入结束,相应的结果不要输出。

Output

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

Sample Input

3 3
1 2 1
1 3 2
2 3 4
1 3
2 3 2
0 100

Sample Output

3
?

裸题

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>using namespace std;int pre[1005];
struct node {int x,y;int val;
} p[50005];
int find(int x) {if(x==pre[x])return x;elsereturn pre[x]=find(pre[x]);
}
bool merge(int x,int y) {int fx=find(x);int fy=find(y);if(fx!=fy) {pre[fx]=fy;return true;} else {return false;}
}
bool cmp(node x,node y) {return x.val<y.val;
}
int main() {int N,M;while(scanf("%d%d",&M,&N)!=EOF) {if(M==0)break;int cnt=0;for(int t=1; t<=N; t++) {pre[t]=t;}for(int t=1; t<=M; t++) {scanf("%d%d%d",&p[t].x,&p[t].y,&p[t].val);}sort(p+1,p+M+1,cmp);long long int sum=0;for(int t=1; t<=M; t++) {if(cnt==N-1) {break;}if(merge(p[t].x,p[t].y)) {sum+=p[t].val;cnt++;}}if(cnt==N-1)printf("%lld\n",sum);else {printf("?\n");}}return 0;
}

转载于:https://www.cnblogs.com/Staceyacm/p/10781984.html

HDU - 1863-畅通工程(最小生成树)相关推荐

  1. HDU 1863畅通工程(最小生成树)(prim算法)

    畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  2. HDU 1863 畅通工程 最小生成树

    思路: 比较典型的最小生成树的题目了..在这里用求最小生成树的经典算法K(Kruskal)算法和P(Prim)算法.我的 K 算法用的是结构体来存图,P 算法用的是邻接矩阵来存图,K算法的复杂度是O( ...

  3. HDU 1863 畅通工程

    畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  4. HDU——1863 畅通工程(最小生成树问题)

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863 题意:有m个村庄,还给出了n条道路的具体信息.问你能否使m个村庄畅通,且最小花费是多少? 解题思 ...

  5. HDOJ 1863畅通工程(最小生成树kruskal算法并查集实现)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1863 最小生成树kruskal算法:http://www.zhuoda.org/irini/78592.h ...

  6. hdu 1232 畅通工程 最小生成树 并查集

    1232的连接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 #include <iostream>#include <cstdio& ...

  7. hdu 1879 继续畅通工程 最小生成树

    继续畅通工程                                                                             Time Limit: 2000/ ...

  8. hdu 1233 还是畅通工程 最小生成树(prim算法 + kruskal算法)

    还是畅通工程                                                                            Time Limit: 4000/2 ...

  9. hdu 1879 继续畅通工程 (最小生成树)

    继续畅通工程 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  10. HDU 1879 继续畅通工程 最小生成树

    继续畅通工程 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description ...

最新文章

  1. Java线程池实现原理及其在美团业务中的实践
  2. java 注解报错_java注解验证接收参数 返回注解字段的错误
  3. 巅峰极客2021 what_pickle——一道综合性的python web
  4. Python中九种格式化输出方法,你都知道吗?
  5. apollo 配置中心_apollo-1:apollo配置中心单机模拟分布式部署
  6. java发送get post请求_【工具】java发送GET、POST请求
  7. 使用to like动词_17
  8. 数据分析师熬夜整理:最全「零售业」数据指标和使用技巧
  9. 什么是Semantic(语义)?从互联网爬虫、自动驾驶到对话机器人
  10. NLP学习—20.WMD paper及代码
  11. 关于python字符串format的一些花式用法
  12. 【OpenCV学习笔记】【函数学习】十九(感兴趣区域)
  13. android 模拟器加速,android开发怎么设置加速模拟器如真机运行
  14. 注意丨Pearson VUE身份证件政策要求
  15. python层次分析法案例_在R语言中使用层次分析法-案例1
  16. java 递归死循环_java嵌套事物与递归调用避免死循环问题
  17. 【GT】Assembler 源码解读及使用 !Cocos Creator!
  18. element-ui表格合并数据相同行
  19. vba 定义类_excel编程系列基础:认识VBA的编辑器VBE
  20. 冇内容管理系统分析-js中关于array的slice和sort方法(转自JavaEye)

热门文章

  1. scrapy-redis爬虫如何发送POST请求
  2. oracle11g设置数据库归档,oracle_Oracle11g RAC开启关闭、设置归档小结,关闭 1.先关数据库: 复制代 - phpStudy...
  3. 好用的shell_Linux系统安全 | Linux中的Shell和Bash
  4. linux运维项目redis简历,redis简介
  5. java 时间回退_java.time DateTimeFormatter使用灵活的回退值进行解析
  6. 照片看3秒就销毁的软件_3.9秒破百,比亚迪汉EV到店实拍:实车比照片更好看
  7. python3.5模块大全-python tkinter模块使用大全(超全)
  8. java ear和war_JAR、WAR、EAR的使用和区别
  9. mysql创建表语句 cmd_MySQL 创建数据表
  10. imac java7下载地址,如何在苹果电脑上安装JAVA开发工具,经验告诉你该这样