畅通工程
Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 37969    Accepted Submission(s): 16915
Problem Description
省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。
 
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
?
 

C/C++:

 #include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <stack>
#include <set>
#include <map>
#include <queue>
#include <climits>
#include <bitset>
#define eps 1e-6
using namespace std; int n, m, my_map[][]; int prim()
{
/**
Initialize
*/
int my_pos = , my_book[] = {, }, my_distance[], my_ans = ;
for (int i = ; i <= m; ++ i)
my_distance[i] = my_map[my_pos][i]; for (int i = ; i < m; ++ i)
{
int my_min = INT_MAX;
for (int j = ; j <= m; ++ j)
{
if (my_book[j] || my_distance[j] >= my_min) continue;
my_min = my_distance[j];
my_pos = j;
}
if (my_min == INT_MAX) return ; // Can't reach my_book[my_pos] = ;
my_ans += my_min; for (int j = ; j <= m; ++ j)
{
if (my_map[j][my_pos] < my_distance[j])
my_distance[j] = my_map[j][my_pos];
}
} return my_ans;
} int main()
{
ios::sync_with_stdio(false); while(scanf("%d%d", &n, &m), n)
{
/**
Initialize
*/
for (int i = ; i <= m; ++ i)
for (int j = i; j <= m; ++ j)
my_map[i][j] = my_map[j][i] = INT_MAX; /**
Date Input
*/
for (int i = ; i <= n; ++ i)
{
int a, b, a_b_distance;
scanf("%d%d%d", &a, &b, &a_b_distance);
my_map[a][b] = my_map[b][a] = a_b_distance;
} /**
Process
*/
int my_temp = prim();
if (my_temp)
printf("%d\n", my_temp);
else
printf("?\n");
}
return ;
}

hdu 1863 畅通工程 (prim)的更多相关文章

  1. hdu 1863 畅通工程 (并查集+最小生成树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863 畅通工程 Time Limit: 1000/1000 MS (Java/Others)    M ...

  2. HDU 1863 畅通工程(Prim算法求解MST)

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

  3. HDU 1863 畅通工程(Prim,Kruskal,邻接表模板)

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

  4. <hdu - 1863> 畅通工程 并查集和最小生成树问题

    本题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863  Problem Description: 省政府“畅通工程”的目标是使全省任何两个村庄间都可以 ...

  5. hdu 1863 - 畅通工程(MST)

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

  6. HDU 1863 畅通工程

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

  7. 题解报告:hdu 1863 畅通工程

    Problem Description 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).经过调查评估,得到的统计表中列出了有可 ...

  8. HDU 1863 畅通工程 克鲁斯卡尔算法

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

  9. HDU 1863 畅通工程(Kruskal)

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

随机推荐

  1. ‎Cocos2d-x 学习笔记(21.1) ScrollView “甩出”效果与 deaccelerateScrolling 方法

    1. 简介 “甩出”效果是当我们快速拖动container并松开后,container继续朝原方向运动,但是渐渐减速直到停止的效果. ScrollView的onTouchEnded方法会设置Timer ...

  2. python- = 与 ==的区别

    一个等号代表的含义是赋值,将某一数值赋给某个变量,比如a=3,将3这个数值赋予给a. 两个等号是判断是否相等,返回True或False,比如1==1.他们是相等的,那么就返回true.1==2,他们是 ...

  3. 【Autofac打标签模式】Component和Autowired

    [ Autofac打标签模式]开源DI框架扩展地址: https://github.com/yuzd/Autofac.Annotation/wiki Componet标签把类型注册到DI容器 1. 把 ...

  4. ElasticSearch安装及使用

    ElasticSearch安装及使用 ELK由Elasticsearch.Logstash和Kibana三部分组件组成. Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置 ...

  5. 百万年薪python之路 -- 前端CSS样式

    CSS样式 控制高度和宽度 width宽度 height高度 块级标签能设置高度和宽度,而内联标签不能设置高度和宽度,内联标签的高度宽度由标签内部的内容来决定. 示例: <!DOCTYPE ht ...

  6. 9i oracle数据库迁移到11G(exp)

    这个是之前生产上打算迁移的文档,后面离职了没有在停机迁移,但是测试过几次没有问题,其中需要把9I的110,120库迁移到11g一个数据库中,但是110,120库之间有相同的表名字,以及有DBLINK. ...

  7. spring boot mybatis多多数据源解决方法

    在我们的项目中不免会遇到需要在一个项目中使用多个数据源的问题,像我在得到一个任务将用户的聊天记录进行迁移的时候,就是用到了三个数据源,当时使用的AOP的编程方式根据访问的方法的不同进行动态的切换数据源 ...

  8. Tomcat原理与优化随笔

    1. 基础组件: Server, Service: Connector(http, https, ajp用于Apache反向代理), Engine Engine: Realm用于安全配置等,如User ...

  9. Charles抓包工具的使用(一)

    前提:charles的说明 Charles其实是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的.该软件是用Java写的,能够在W ...

  10. python语法入门之流程控制

    python语法入门之流程控制 流程控制是指控制流程,具体指控制程序执行的流程. 流程控制分为三种: 1.顺序结构 程序从上而下的正常执行(正常执行的代码就是顺序结构) 2.分支结构 赋予程序人的思维 ...