畅通工程

机试题:畅通工程与继续畅通工程(加造价) 畅通工程 继续畅通工程 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。 测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 N、村庄数目M (N, M < =10... 阅读详情

畅通工程

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 13771    Accepted Submission(s): 5685


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 ?
 

Source



#include<iostream>
#include<cstdio>
#include<cstring>
#define M 0x3fffffff
#define D 120
using namespace std;
int map[D][D];
int visit[D];
int dis[D];
int flag[D];
int num;

int find(int x)
{
    return flag[x]=(flag[x]==x?x:find(flag[x]));
}
void merge(int a,int b)
{
    int x=find(a);
    int y=find(b);
    if(x!=y)
    {
        flag[x]=y;
        num--;
    }

}
int prim(int n)
{
    int i,j,k;
    for(i=1;i<=n;i++)
    {
        dis[i]=M;
    }
    dis[1]=0;
    for(j=1;j<=n;j++)
    {
       int t=M;
       int pos;
       for(i=1;i<=n;i++)
       {
           if(!visit[i]&&t>dis[i])
           {
               t=dis[i];
               pos=i;
           }
       }
       visit[pos]=1;
       for(i=1;i<=n;i++)
       {
           if(!visit[i]&&dis[i]>map[pos][i]&&map[pos][i]!=M)
            {
                dis[i]=map[pos][i];
                //printf("%d   %d\n",i,dis[i]);
            }

       }

    }
    int sum=0;
   /* for(i=1;i<=n;i++)
    {
        printf("%d\n",dis[i]);
    }*/
    for(i=1;i<=n;i++)
    sum=sum+dis[i];
    return sum;

}
int main()
{

    int n,m;
    int a,b;
    int i,j,k;
    while(scanf("%d%d",&m,&n)!=EOF)
    {
        if(m<=0)
        break;
        num=n-1;
        //memset(map,0x3f,sizeof(map));
        for(i=0;i<110;i++)
        {
             for(j=0;j<110;j++)
             map[i][j]=M;
        }
        memset(visit,0,sizeof(visit));
        for(i=1;i<=n;i++)
        {
            flag[i]=i;
        }
        for(i=1;i<=m;i++)
        {
            scanf("%d%d%d",&a,&b,&k);
            merge(a,b);
            if(k<map[a][b])
            {
                map[a][b]=k;
                map[b][a]=k;
            }
        }

        if(num>0)
        {
            printf("?\n");
            continue;
        }
        int ans=prim(n);

        printf("%d\n",ans);

    }
    return 0;

}


 

Recommend
lcy   |   We have carefully selected several similar problems for you:   1233  1102  1272  1301  1856 
 

杭电acm1874 畅通工程续 畅通工程续 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 59078    Accepted Submission(s): 22176 Problem Description 某省自从实行了很多年的畅通工程计划后 阅读详情

相关推荐

『杭电1863』畅通工程

Problem Description 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。 Input 测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 N、村庄数目M ( < 100 );随后的 N 行对应村庄间道路的成本,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间道路的成本

漠宸离若的博客 621

畅通工程_hdu_1863(并查集+最小生成树).java

并查集+最小生成树

繁华过后你还有我 1433

细节增强卷积DEConv详解及代码复现

这种预训练模型能够捕捉图像的基本特征,为后续的端到端训练提供良好的初始参数。例如,在RESIDE和RESIDE-6K数据集上的实验结果表明,使用MSPLCK模块的MixDehazeNet-L模型在RESIDE-IN数据集上首次超过了42dB的PSNR指标,且在所有数据集上均优于先前的方法。例如,在RESIDE和RESIDE-6K数据集上的实验结果表明,使用MSPLCK模块的MixDehazeNet-L模型在RESIDE-IN数据集上首次超过了42dB的PSNR指标,且在所有数据集上均优于先前的方法。

hasakie的博客 1911

hdu 1232 畅通工程<java>

http://acm.hdu.edu.cn/showproblem.php?pid=1232 题目 题意 给出城市个数,及已联通城市,求连通图需要再建几条路 并查集 import java.util.Scanner; public class Main {     public static void ma

陌生人的专栏 661

保姆级教程:用MATLAB搞定运动模糊图片修复(附完整代码与避坑指南)

本文提供了一份详细的MATLAB运动模糊图片修复教程,涵盖盲复原、图像复原等核心技术。通过傅里叶变换和Radon变换分析模糊参数,对比逆滤波、维纳滤波和Lucy-Richardson算法效果,并附完整代码与避坑指南,帮助用户实现专业级图像处理。

weixin_26765363的博客 230

STM407ZET6+OV5640调试心得

最近一个项目用了STMF407ZET6 +OV5640,调试了好几天做些总结; STMF407ZET6 开发板用的是正点原子的开发板,OV5640摄像头用的是秉火摄像头; 这其中有一个大坑,开发板的DCMI接口跟摄像头的接口不一样,要重新用杜邦线进行连接; 本人是在正点原子的“”15,ATK-OV5640摄像头模块“”源码上进行修改的。

kingseacjh的专栏 8325

杭电1232_畅通工程(并查集)——java

Problem Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?  Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( &lt; 1000 )和道路数目M;...

一只笨鸟丶的专栏 469

ATE测试的未来:自动化与智能化的技术演进

本文探讨了自动测试设备(ATE)在半导体产业中的技术演进,重点关注自动化与智能化的发展趋势。随着芯片制程的不断进步,ATE面临测试复杂度激增和成本压力等挑战。文章分析了AI技术在测试优化中的应用,如自适应测试和缺陷预测,以及模块化架构和端到端测试生态系统的创新。这些技术突破显著提升了测试效率和设备利用率,为半导体测试的未来发展指明了方向。

weixin_29232507的博客 614

HDOJ 畅通工程 JAVA 1232

并查集 注意每次ans++的时候要连上相应的边 /** * */ /** * @author Enron * */ package _1232; import java.util.Scanner; public class Main { static int pre[]; static int find(int x){ if(pre[x] == x) return x;

董公子的博客 459

CP AUTOSAR标准之AUTOSAR OS(AUTOSAR_SWS_OS)(二)

AUTOSAR OS是一个Operating System,即操作系统。它最核心的功能是管理任务和事件的调度,不同任务间的同步流,并且提供监控和错误处理功能。或者用最简化理解就是一个函数调度器。

CoolBreeze的博客 654

8.5华为OD机试真题 新系统 - 最长不连续子串 (Java/Py/C/C++/Js/Go)

8.5华为OD机试真题 新系统 - 最长不连续子串 (Java/Py/C/C++/Js/Go)

算法大师! 628

※浙江大学 畅通工程(java)(并查集)

题目描述 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? 输入描述: 测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行对...

weixin_43306331的博客 477

delphi 调用deepseek r1 api 并流式返回结果

摘要:本文展示了一个使用Delphi调用DeepSeek API的代码示例,包含两种调用方式:一次性获取结果和流式返回结果。代码实现了完整的API请求处理,包括HTTP客户端设置、JSON数据处理和UI界面交互。其中流式调用通过TStreamReader处理服务器发送事件(SSE),实时更新到TRichEdit控件并保持滚动条位置。文章还提到界面美化优化,为Delphi开发者提供了调用AI服务的实用参考方案。(150字)

全粘工程师 494

继续畅通工程

题目描述 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。 输入描述: 测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( 1< N < 100 );随后的 N(N...

Gedulding的博客 758

基于STM32+RFID设计的宿舍检修管理系统

设计一个上位机,用来管理查看维修检修信息,当维修寝室的设备或者检修完成时,通过STM32上的RC522刷一下这个寝室的IC卡,识别这是哪个寝室,识别成功后在软件上弹出一个对话框,填写本次维修或者检修的事件,填写完毕点击提交即可。...

2555

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

HDU 畅通工程

题目链接:畅通工程 void prim(){ dis[1]=0; while(1){ int minn=INF,k=-1; for(int i=1;i<=n;i++){ if(dis[i]<minn&&!vis[i]){ minn=dis[i]; k=i; } } if(k==-1) break; vis[k]...

Helloirbd的博客 762

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

畅通工程浅析

畅通工程: 这道题主要是考察并查集的知识 程序如下: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int pre[1010]; int zhao(int root...

malloch的博客 158

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

畅通工程 并查集

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=608  畅通工程 最裸的并查集应用:只需要查找集合的个数,然后集合个数-1就是要修的路的条数,代码如下: #include int f[1005],rank[1005]; int find(int x) { if(x==f[x]) return x; return

e的专栏 607

畅通工程系列

这道题目求使全省畅通的最低成本,把村庄作为顶点,把道路作为边,那么该题即求最小生成树的总边权值 1.某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? Input 测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行对应M条道路,每行给出一对正整数,分别是

weixin_46250672的博客 975

HDOJ 1863畅通工程

畅通工程   Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)   Total Submission(s): 13725    Accepted Submission(s): 5656 Problem Description 省政府“畅通工程”的目标是使全省任何两个

小梁先生 683

畅通工程再续

题目:畅通工程再续 思考:先用vector建造图,判断是否连通,(注意距离),如果连通再用kruskal计算最小生成树 #include <stdio.h> #include <math.h> #include <string.h> #include <vector> #include <algorithm> using namespac...

多一些不为什么的坚持 532

ACM HDOJ 1863 畅通工程

ACM HDOJ 1863 畅通工程 题目简介 Problem Description 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。 Input 测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路...

qq_25872917的博客 177

Hdu1863 畅通工程

畅通工程 Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 42808Accepted Submission(s): 19128 Problem Description 省政府“畅通工程”...

那一夜见红的博客 222
上一篇: Flying to the Mars
下一篇: 六度分离
evi1743
博客等级 码龄14年 45粉丝 144原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值