• hdu 1223 还是畅通工程


    #include<stdio.h>
    typedef struct{
        int adj;//某定点与已构造好的部分生成树的顶点之间权值最小的顶点
        int lowcost;//某定点与已构造好的部分生成树的顶点之间的最小权值
    }point;
    point close[101];//辅助数组
    int d[101][101];
    int main()
    {
        int n,i,a,b,sum,j,min,k,m;
        while(scanf("%d",&n)!=EOF)
        {
            if(n==0) break;
            sum=0;//记录最小生成树的总路径
            m=n*(n-1)/2;
            for(i=1;i<=m;i++)
            {
                scanf("%d%d",&a,&b);
                scanf("%d",&d[a][b]);
                d[b][a]=d[a][b];//这里一定要注意,我就是忘了这一句,找错找了一个多小时
            }
            for(i=2;i<=n;i++)//辅助数组的初始化
            {
                close[i].adj=1;
                close[i].lowcost=d[1][i];
            }
            close[1].lowcost=0;//将1拉入到最小生成树中
            for(i=1;i<n;i++)
            {
                min=2147483647;
                for(j=1;j<=n;j++)//寻找符合要求的最小权值的顶点
                    if(min>close[j].lowcost&&close[j].lowcost!=0)
                    {
                        min=close[j].lowcost;
                        k=j;
                    }
                sum+=min;
                close[k].lowcost=0;//第k顶点进入生成树
                for(j=1;j<=n;j++)//新顶点进入生成树之后,修改辅助数组
                    if(close[j].lowcost>d[k][j])
                    {
                        close[j].lowcost=d[k][j];
                        close[j].adj=k;
                    }
            }
            printf("%d
    ",sum);
        }
        return 0;
    }
    Problem Description
    某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。
     
    Input
    测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。当N为0时,输入结束,该用例不被处理。
     
    Output
    对每个测试用例,在1行里输出最小的公路总长度。
     
    Sample Input
    3
    1 2 1
    1 3 2
    2 3 4
    4
    1 2 1
    1 3 4
    1 4 1
    2 3 3
    2 4 2
    3 4 5
    0
    Sample Output
    3
    5
    这是一道最小生成树的应用。下面是prim算法:
  • 相关阅读:
    ASP.NET AJAX Progress Bar Control(转)
    asp.net 页面右下角弹出类似QQ或MSN的消息提示
    用31个免费在线工具来测试你网站各项性能
    HtmlTextWriter学习<转>
    .NET企业级应用架构设计系列之应用服务器
    .NET企业级应用架构设计系列之开场白
    Asp.Net应用程序中长时间装载页面时显示进度条
    用JavaScript操作数据库
    UML类图关系全面剖析
    Microsoft® Visual SourceSafe® 6.0 标准版 简介下载
  • 原文地址:https://www.cnblogs.com/duan-to-success/p/3510170.html
Copyright © 2020-2023  润新知