2007浙大复试上机考试题目5--畅通工程

简介:
题目要求:
省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。
具体的输入输出格式规定如下:
 
输入格式:测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 N、村庄数目M ( < 100 );随后的 N
行对应村庄间道路的成本,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间道路的成本(也是正整数)。为简单起见,村庄从1到M编号。当N为0时,全部输入结束,相应的结果不要输出。
 
输出格式:对每个测试用例,在1行里输出全省畅通需要的最低成本。若统计数据不足以保证畅通,则输出“?”。
 
输入样例:
 
3 3
1 2 1
1 3 2
2 3 4
1 3
2 3 2
0 100
 
输出样例:
 
3
?
--------------------------------------------------------------------------
#include <iostream>
using namespace std;

int main()
{
    int n,m,aa[110][110],v[110],min[110],ret,i,j,k,inf=(100<<16)+100;
    while(cin>>m>>n&&m){
        memset(aa,100,sizeof(aa));
        while(m--){
            cin>>i>>j>>k;
            aa[j-1][i-1]=aa[i-1][j-1]=k;
        }
        for(ret=i=0;i<n;i++) min[i]=inf,v[i]=0;
        for(min[j=0]=0;j<n;j++){
             for(k=-1,i=0;i<n;i++)
                 if(!v[i]&&(k==-1||min[i]<min[k]))k=i;
                 for(v[k]=1,ret+=min[k],i=0;i<n;i++)
                     if(!v[i]&&aa[k][i]<min[i])
                         min[i]=aa[k][i];
        }
        if(ret<inf)cout<<ret<<endl;
        else cout<<"?"<<endl;
    }
    return 0;
}




本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2007/03/26/688844.html,如需转载请自行联系原作者
目录
相关文章
|
Python
蓝桥杯刷题记录-2020省赛
比较全面的记录2020省赛题目,本篇文章全文都是采用Python解题,题目都是基础简单的题目
65 0
|
Web App开发 测试技术 C语言
软件测试 测试综合期末上机试题
软件测试 测试综合期末上机试题
115 0
|
存储 SQL 负载均衡
图数据库认证考试 NGCP 错题解析 vol.02:这 10 道题竟无一人全部答对
大概知道在错题解析未出来之前,NebulaGraph 专业技能认证 NGCP 通过率仅有 16.7%。但经过上一轮解析, 通过率上升 0.1%,现在变成了 16.8%。我们再接再厉,看下这期之后又如何……
208 0
蓝桥杯 试题 基础练习(1~5)
蓝桥杯 试题 基础练习(1~5)
61 0
|
人工智能 测试技术
2021年第十二届蓝桥杯模拟赛(第三期)题目和解析
蓝桥杯是指蓝桥杯全国软件和信息技术专业人才大赛。是由工业和信息化部人才交流中心举办的全国性IT学科赛事。共有北京大学、清华大学、上海交通大学等全国1200余所高校参赛。
372 0
2021年第十二届蓝桥杯模拟赛(第三期)题目和解析
试题历届真题时间显示【第十二届】【省赛】【B组】(C++)
题目分析: 1.首先,输入的是毫秒,我们要先把它转化为秒:
219 0
试题历届真题时间显示【第十二届】【省赛】【B组】(C++)
试题历届真题跑步锻炼【第十一届】【省赛】【B组】(C++)
题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小蓝每天都锻炼身体。正常情况下,小蓝每天跑 11 千米。如果某天是周一或者月初(11 日),为了激励自己,小蓝要跑 22 千米。如果同时是周一或月初,小蓝也是跑 22 千米。 小蓝跑步已经坚持了很长时间,从 20002000 年 11 月 11 日周六(含)到 20202020 年 1010 月 11 日周四(含)。请问这段时间小蓝总共跑步多少千米?
152 0
试题历届真题蛇形填数【第十一届】【省赛】【B组】(C++)
题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。如下图所示,小明用从 11 开始的正整数“蛇形”填充无限大的矩阵。容易看出矩阵第二行第二列中的数是 55。请你计算矩阵中第 2020 行第 2020 列的数是多少
218 0
下一篇
DataWorks