hdu1863畅通工程(最小生成树)

来源:互联网 发布:linux怎么退出全屏 编辑:程序博客网 时间:2024/04/30 09:47

题目链接(http://acm.hdu.edu.cn/showproblem.php?pid=1863)

Problem Description省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。Input测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 N、村庄数目M ( < 100 );随后的 N 行对应村庄间道路的成本,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间道路的成本(也是正整数)。为简单起见,村庄从1到M编号。当N0时,全部输入结束,相应的结果不要输出。Output对每个测试用例,在1行里输出全省畅通需要的最低成本。若统计数据不足以保证畅通,则输出“?”。Sample Input3 31 2 11 3 22 3 41 32 3 20 100Sample Output3?
#include <iostream>#include <cstring>#include<stdio.h>#define INF 0x7ffffffusing namespace std;int m,n;int map[105][105];int vis[105];int dis[105];void init(){    for(int i=1;i<=m;i++)        for(int j=1;j<=m;j++)        {            if(i==j)                map[i][j]=0;            else                map[i][j]=INF;        }}void prim(){    memset(vis,0,sizeof(vis));    for(int i=1;i<=m;i++)    dis[i]=map[1][i];    int sum=0;    vis[1]=1;    for(int i=1;i<m;i++)    {        int min=INF;        int u=1;        for(int j=1;j<=m;j++)        {            if(!vis[j]&&dis[j]<min)            {                min=dis[j];                u=j;            }        }        vis[u]=1;        sum+=min;        for(int j=1;j<=m;j++){            if(!vis[j]&&map[u][j]<dis[j])                dis[j]=map[u][j];        }    }    if(sum>=INF)        printf("?\n");    else        printf("%d\n",sum);}int main(){    int a,b,t;    while(cin>>n>>m,n)    {        init();        for(int i=1;i<=n;i++)        {            cin>>a>>b>>t;            map[a][b]=map[b][a]=t;        }        prim();    }    return 0;}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 360f4手机充电慢怎么办 vivo卡了怎么办小窍门 白色衣服用84泡后变黄怎么办 用祛斑霜脱皮了怎么办 用祛斑霜脸一直蜕皮怎么办 吃热的就流鼻涕怎么办 键盘qaz失灵其他都没事怎么办 时时彩代理抓了怎么办 6p升级ios11卡顿怎么办 微信弄没了又换号了怎么办 快手账号异常请去激活怎么办 九游账号被转移怎么办 绝地求生刺激战场闪退怎么办 qq回执编号忘了怎么办 电脑开机要用户名和密码怎么办 电脑忘记用户名和密码怎么办 微信账号密码忘了怎么办 开发者账号密保忘记怎么办 华为账号忘记密保问题怎么办 fiyme账号忘记密保怎么办 id忘了密保问题怎么办 vivo账号密码忘记了怎么办 步步高账号密码忘了怎么办 步步高手机账号密码忘了怎么办 康佳电视通行证忘了怎么办 尚游通行证忘了怎么办 深圳免限行通行证忘了截图怎么办 电脑把管理员账号删除了怎么办 uc新浪加载失败怎么办红包还 微信忘记账号和密码怎么办 苹果手机忘记id密码怎么办 购买游戏账号被找回怎么办 交易猫账号忘了怎么办 爱奇艺账号怎么修改不了密码怎么办 论文目录显示错误未定义书签怎么办 银行账号被冻结了怎么办 哈罗单车账号被冻结怎么办 麻袋赚赚账号被冻结怎么办 网赌账号被冻结怎么办 梦想城镇账号被冻结怎么办 钱被银行冻结了怎么办